【PHP】【组件使用】【phpexcel】【phpexcel导入导出】

一、前提

PHP 7.3

tp3.2

tp5版本及以上的可能需要修改

二、phpexcel包引入

composer require phpoffice/phpexcel

三、复用代码

3.1、导入功能

/*** 数据导入功能* @param array $file 上传文件的相关信息($_FILES对应得)* @param int $headerNum 去除表头行数* @param array $keyArr 表头名集合 当表头和数据库不一致时,需要手动填写,比如都是中文时* @return array* @throws \PHPExcel_Exception* @throws \PHPExcel_Reader_Exception*/
public function excelToArray($file, $keyArr = [], $headerNum = 1)
{vendor("PHPExcel.PHPExcel");$objPHPExcel = \PHPExcel_IOFactory::load($file['tmp_name']);//读取上传的文件$arrExcel    = $objPHPExcel->getSheet()->toArray();//获取其中的数据if (empty($keyArr)) {$key = $arrExcel[0]; // 返回 excel 标题(用作数组的键)} else {$key = $keyArr;}array_splice($arrExcel, 0, $headerNum); // 单独移除两个表头// 整理数据(使其变成关联数组)foreach ($arrExcel as &$item) {$item = array_combine($key, $item);// 此处可以直接进行数据预处理}return $arrExcel;
}补充:$file = [];
foreach ($_FILES['file'] as $k => $v) {$file[$k] = $v[0];
}

3.2、导出功能

/*** 数据导出功能* @param $cellType  主要用于id过长的数据进行特殊处理* @param array $data 数据* @param string $title 标题* @param int $downloadType 0:浏览器 1:下载缓存文件* @param string $formats 文件类型* @param string $writeType 写入类型* @throws \PHPExcel_Exception* @throws \PHPExcel_Reader_Exception* @throws \PHPExcel_Writer_Exception*/
public function exportExcel($cellType = [], $data = [], $title = '', $downloadType = 0, $formats = 'xls', $writeType = 'Excel2007')
{vendor("PHPExcel.PHPExcel");$objPHPExcel = new \PHPExcel();$xlsTitle    = iconv('utf-8', 'gb2312', $title);//文件名称$fileName    = $title . date('_YmdH');//文件名称$cellName    = array_keys($data[0]);//处理表头foreach ($cellName as $k => $v) {$objPHPExcel->setActiveSheetIndex(0)->setCellValueExplicit(chr(65 + $k) . '1', $v);//设置表头数据}//处理数据foreach ($data as $row => $v) {foreach ($cellName as $col => $v1) {if (isset($cellType[$v1])) {//如果运营没太大要求,其实可以直接加个空字符串$objPHPExcel->getActiveSheet()->setCellValueExplicit(chr(65 + $col) . ($row + 2), $v[$v1], $cellType[$v1]);} else {$objPHPExcel->getActiveSheet()->setCellValue(chr(65 + $col) . ($row + 2), $v[$v1]);}}}//导出excelheader("pragma:public");header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.' . $formats . '"');header("Content-Disposition:attachment;filename=$fileName.$formats");//attachment新窗口打印inline本窗口打印$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, $writeType);if ($downloadType) {$fileName  = $fileName . '.' . $formats;$file_path = RUNTIME_PATH . 'exportExcel/' . $fileName;$objWriter->save($file_path);} else {if ($formats == 'csv') {$objWriter->setUseBOM(true);}$objWriter->save('php://output');exit(0);}
}

【PHP】【组件使用】【phpexcel】【phpexcel导入导出】相关推荐

  1. PHPExcel处理导入导出图片,链接

    PHPExcel是一个非常强大的PHP表格处理模块,提供一组PHP编程语言,它允许您编写和读取不同的电子表格文件格式,如Excel(纸). xls,Excel 2007(OfficeOpenXML). ...

  2. TP5引用PHPExcel实现导入导出功能

    从github下载PHPExcel PHPExcel 将下载好的PHPExcel文件夹跟PHPExcel放置在框架中的Vendor目录下,注意目录的结构,按照我的代码来基本上直接引用就能使用 前端代码 ...

  3. php excel 导入配置,Thinkphp3.2.3整合PHPexcel进行导入导出操作

    前端按钮 导出Excel AJAX提交 $(function () { $(".excel").on("click",function () { var dat ...

  4. TP5.0 PHPExcel 数据表格导出导入(引)

    TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...

  5. thinkphp5 使用PHPExcel 导入导出

    首先下载PHPExcel类.网上很多,自行下载. 然后把文件放到vendor文件里面. 一般引用vendor里面的类或者插件用vendor(); 里面加载的就是vendor文件,然后想要加载哪个文件, ...

  6. php导出excel2007实例,PHPExcel精简版与导入导出案例

    [实例简介] PHPexcel1.7.7精简版 只包含导入与导出功能:详细我已写好了例子,文档中也有包含,详细介绍见我博客http://blog.csdn.net/slyjit/article/det ...

  7. PHPEXCEL 20万数据导入导出(一)

    本片博客记录了一次实际开发中的需要使用PHPExcel导入导出大量数据(20万)的解决过程. 复盘优化自己的项目,好处在于,一旦已找到好的方法,好的代码,你就不可能再使用差的代码 场景描述:开发环境: ...

  8. 使用phpexcel将excel表格的导入导出

    使用phpexcel将excel表格的导入数据库 1–使用composer安装phpexcel包 composer require phpoffice/phpexcel -vvv 2-控制器 //导入 ...

  9. PHP利用phpExcel实现Excel数据的导入导出

    phpExcel包的下载地址:http://download.csdn.net/detail/kesixin/9920920 首先先说一下,这段例程是使用在Thinkphp的开发框架上,要是使用在其他 ...

最新文章

  1. svn清理失败且乱码 问题解决(转)
  2. java原生类型没有封装_Java基本数据类型与封装类型详解(int和Integer区别)
  3. 2019年北航OO第四单元(UML任务)及学期总结
  4. 网络环境下计算机取证的见解,2018年华医网初级继续教育答案解析
  5. 【算法+OpenCV】基于opencv的直线和曲线拟合与绘制(最小二乘法)
  6. 用命令行的方式运行Spark平台的wordcount项目
  7. java将数组中的数据修改,深度集成!
  8. 360 java插件设置_jdk环境变量一键设置 管理員运行
  9. vmware安装黑苹果教程
  10. pcm输出还是源码输出_LOL手游:上单英雄怎么选?还是推荐玩“狗头”,有肉又有输出...
  11. FFmpeg之yuv旋转(十九)
  12. Ubuntu18.04报错:make[1]: *** No rule to make target armv4-mont.o, needed by build-msm8916/lk. Stop.
  13. mysql创建用户删除权限_mysql 用户创建、授权及删除、取消权限操作
  14. OpenCV绘制多边形的代码
  15. 内点法(interior point method)求解二次规划,附python代码
  16. 证书更新提示,网易漫画等...
  17. Centos6.x安装mysql5.6版本
  18. 《PyTorch深度学习实践》-P5线性回归
  19. extern C和__declspec(dllexport)以及__declspec(dllimport) 和def的简单解析
  20. error 1366

热门文章

  1. win10误删文件怎么恢复
  2. Android开发笔记: 解决View宽高为0的问题
  3. AI算法课堂笔记20210913
  4. 数据处理---之---倒排索引---讲解
  5. mysql数据库--表中数据的基本操作
  6. 神经网络结构设计指导原则
  7. 走近支付:一文看懂62个支付名词
  8. 网络分层模型TCP/IP
  9. 如何将 iPad 用作 Windows 计算机的第二台显示器?
  10. html中init是什么作用,HTML5教程:精讲__init__、__new__、__call__方法(可面试用)