您所在的位置:首页 - PHP - 正文PHP
thinkphp6 + phpexcel 导入导出数据,设置特殊表格
萧何-Vincent
2021-10-21
【PHP】
2015人已围观

第三步: 写导出、导入代码
<?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判断来源是否是蜘蛛
文章评论 (暂无评论,2015人围观)
站长推荐
思科、华为、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

