### 1 安装 phpoffice/phpexcel 库
```
composer require phpoffice/phpexcel
```
### 2 用户表sql文件大致如下
```
CREATE TABLE `user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
`email` varchar(32) NOT NULL,
`phone` varchar(32) NOT NULL,
`age` tinyint(3) NOT NULL,
`create_time` int(11) NOT NULL,
`update_time` int(11) NOT NULL,
`status` tinyint(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
### 3 读取需要的字段信息 并定义相应的单元格名称 将内容 写入Excel数据表信息
更多设置请查询相关资料 以下为简单使用
```
public function down()
{
// 读取数据表信息
$db = new UserModel();
$list = $db->field('id,name,email,phone,age,create_time')->select();
$xlsName = "用户表"; // 表名称
$xlsCell = [
['id', '序号'],
['name', '名称'],
['email', '邮箱'],
['phone', '电话'],
['age', '年龄'],
['create_time', '添加时间']
];// 表头信息
$this->downloadExcel($xlsName, $xlsCell, $list);// 传递参数
}
protected function downloadExcel($expTitle, $expCellName, $expTableData)
{
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
$fileName = $expTitle;
$cellNum = count($expCellName);// 单元格长度
$dataNum = count($expTableData);
$objPHPExcel = new \PHPExcel();// 引入库
$cellName = [
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
];
$objPHPExcel->getActiveSheet(0)
->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合并单元格为表头
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle);// 设置表头单元格
for ($i = 0; $i < $cellNum; $i++) {
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue($cellName[$i] . '2', $expCellName[$i][1]);
// 设置列
}
// Miscellaneous glyphs, UTF-8 循环写入数据
for ($i = 0; $i < $dataNum; $i++) {
for ($j = 0; $j < $cellNum; $j++) {
$objPHPExcel->getActiveSheet(0)
->setCellValue($cellName[$j] . ($i + 3), $expTableData[$i][$expCellName[$j][0]]);
}
}
ob_end_clean();//这一步非常关键,用来清除缓冲区防止导出的excel乱码
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");//"xls"参考下一条备注
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
//"Excel2007"生成2007版本的xlsx,"Excel5"生成2003版本的xls 调用工厂类
return $objWriter->save('php://output');
}
```
### 4 页面直接访问down方法即可
- php ping 地址
- python调用php脚本和sh调用php脚本
- php随机字符串
- redis操作
- 公共页面文件
- 登录
- 文章
- 文章管理
- 文章分类
- 图片
- 图片分类
- 图片管理
- 配置文件
- ueditor配置远程上传
- django
- 安装
- jinja2模板标签
- 虚拟机
- centos宝塔面板安装
- mysql主从搭建
- 虚拟机安装centos7
- 2
- 主从复制
- uni-app
- 更新
- 直播简单代码
- 搞笑的注释代码
- jwt
- centos以太坊环境搭建
- thinkphp5.1下的redis使用
- redis的安装
- tp5.1中使用
- tp5.1下载酷狗音乐
- 跨域
- tp5.1导出数据库到excel
- 钩子和行为
- 支付宝
- 申请支付宝app接入
- 视频播放
- 模块安装
- 推流配置
- pc端网页代码
- srs
- 后台布局
- 基础布局文件
- 左边
- 头部
- css特效代码
- 图片旋转
- 图片放大
- 顶部
- 列表页
- 更新数据表单页
- 模型获取器
- 上传图片
- mysql
- 一些常用
- 远程授权
- 数据库常用命令
- 忘记密码
- webpack
- 一些乱七八糟的东西
- linux后台运行脚本过大处理办法
- sublime插件
- linux svn安装
- 工具
- 查看进程
- 获取微信公众号文章
- 爬取微信公众号文章
- 清空nohup
- 服务器上跨域配置
- sql语句生成orm模型写法的工具
- centos换阿里源
- linux一些日志操作
- zsh