您所在的位置:首页 - PHP - 正文PHP
thinkphp6 + phpexcel 导入导出数据,设置特殊表格
萧何-Vincent
2021-10-21
【PHP】
1514人已围观
第三步: 写导出、导入代码
<?php namespace app\admin\controller; use app\BaseController; class Index extends BaseController { public function index() { } /** * excel 读取导入 * @return \think\response\Json|void * @throws \PHPExcel_Exception * @throws \PHPExcel_Reader_Exception */ public function impExcel() { //读取excel文件 $objPHPExcel = new \PHPExcel(); $file_name = "C:\Users\EDZ\Downloads\智能匹配导入数据(1).xlsx"; $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); $obj_PHPExcel = $objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8 $excel_array = $obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式 array_shift($excel_array); //删除第一个数组(标题); $data = []; $i = 0; foreach ($excel_array as $k => $v) { $data[$k]['id'] = $v[0]; $data[$k]['name'] = $v[1]; $data[$k]['image'] = $v[2]; $i++; } return json($data); } /** * eccel导出 * @throws \PHPExcel_Exception * @throws \PHPExcel_Reader_Exception * @throws \PHPExcel_Writer_Exception */ public function expExcel() { // 1.选取表中要输出数据 $con = array( [ 'id' => 1, 'name' => '名字', 'image' => '头像' ], [ 'id' => 2, 'name' => '名字2', 'image' => '头像2' ], ); //没有第二部 //3.实例化PHPExcel类 $objPHPExcel = new \PHPExcel(); //4.激活当前的sheet表 $objPHPExcel->setActiveSheetIndex(0); //5.设置表格头(即excel表格的第一行) $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'ID') ->setCellValue('B1', '姓名') ->setCellValue('C1', '性别') ->setCellValue('D1', '年龄') ->setCellValue('E1', '电话') ->setCellValue('F1', '地址') ->setCellValue('G1', '详细地址'); // 设置表格头水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('G1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置列水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置单元格宽度 $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(30); //6.循环刚取出来的数组,将数据逐一添加到excel表格。 for ($i = 0; $i < count($con); $i++) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $con[$i]['id']);//ID $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $con[$i]['name']);//姓名 $objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 2), $con[$i]['image']);//性别 } //7.设置保存的Excel表格名称 $filename = 'user' . date('ymd', time()) . '.xls'; //8.设置当前激活的sheet表格名称 $objPHPExcel->getActiveSheet()->setTitle('user'); //9.设置浏览器窗口下载表格 header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename . '"'); //生成excel文件 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //下载文件在浏览器窗口 $objWriter->save('php://output'); exit; } public function hello($name = 'ThinkPHP6') { return 'hello,' . $name; } }
第四步: 如下报错解决办法:
解决直接简单粗暴 更改phpexcel包文件
continue;改成break; //再去试试就可以了
Tags: PHP
上一篇: MySQL 事务机制
下一篇: php判断来源是否是蜘蛛
文章评论 (暂无评论,1514人围观)
站长推荐

思科、华为、H3C命令对照表
-
小程序实战:从入门到上线,手把手教你搭建天气预报微信小程序
PHP | 2022-07-05
-
【php算法】有一母牛,到4岁可生育,每年一头,所生均是一样的母牛...问n年后有多少头牛?
PHP | 2022-07-05
-
企业级域环境搭建实例——主域,辅域和子域,DNS配置实例
Network | 2022-07-01
-
MySQL + JSON = 王炸!!
DataBase | 2022-03-03
-
LVS(Linux虚拟服务)----服务器集群系统工作原理
Linux | 2022-03-01
-
元宇宙的来源是什么?涉及核心技术BIGANT
AI, Big Data | 2022-02-22
-
人工智能(Artificial Intelligence)、机器学习(Machine Learning)、深度学习(Deep Learning)三者区别
AI, Big Data | 2022-01-06
-
Redis 学习知识小记
DataBase | 2021-11-04
-
php面试常规问题主键索引和唯一索引有什么区别
DataBase | 2021-11-04
最新留言
-
世界末日我都挺过去了,看到楼主我才知道为什么上帝留我到现在!http://1r8.pistpyh.cn/
昵称:访客2024-07-04
-
这位作者的文笔极其出色,用词精准、贴切,能够形象地传达出他的思想和情感。http://oui.kblewwq.cn/
昵称:访客2024-07-04
-
坚持回帖!http://mqp.baishanct.com/
昵称:访客2024-07-04
-
在哪里跌倒,就在那里多爬一会儿!http://gx.baishanct.com/
昵称:访客2024-07-04
-
好东西,学习学习!http://mn7jf.xmona.com.cn/
昵称:访客2024-07-04
-
这么好的帖子,应该加精华!http://www.baishanct.com/
昵称:访客2024-07-04
-
昵称:微信用户2023-12-28
-
昵称:mm2023-12-12
-
昵称:微信用户2023-11-25
-
昵称:Tim2022-07-28
站点信息
- 文章总数:65
- 页面总数:1
- 分类总数:5
- 标签总数:12
- 评论总数:24
- 浏览总数:82970