万能导出excel数据教程

半抹灯芯 2022-10-11 13:21:08

首先我们需要安装一下下面的插件插件安装完后不需要设置安装完成即可。
插件安装地址:链接
然后我们在application\common\fun 下面新建一个 Export.php
代码如下:

~~~
<?php
namespace app\common\fun;
require ROOT_PATH.'plugins/phpexcel/phpexcel/PHPExcel.php';
use PHPExcel_IOFactory;
use PHPExcel;
class Export{
   /**
    * 通用数据导出类
    * @param $expTitle 导出的文件标题
    * @param $expCellName 导出的表头文件
    * @param $expTableData 导出的数据
    */
   public static function exportExcel($expTitle,$expCellName,$expTableData){
      $xlsTitle=iconv('utf-8','gb2312',$expTitle);
      $fileName=$expTitle.date('_Ymd');
      $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'];

      for($i=0;$i<$cellNum;$i++){
         $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'1',$expCellName[$i][1]);
      }
      for($i=0;$i<$dataNum;$i++){
         for($j=0;$j<$cellNum;$j++){
            $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+2),$expTableData[$i][$expCellName[$j][0]]);
         }
      }
      ob_end_clean();
      header('pragma:public');
      header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
      header("Content-Disposition:attachment;filename=$fileName.xls");
      $objWriter=\PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
      $objWriter->save('php://output');
      exit;
   }
~~~
/**
 * 通用导入类
 * @param $file
 * @return array|void
 */
public static function read_excel($file){
   if(!is_file($file)&&!preg_match("/\.xls$/",$file)){
      die('xls文件不存在!');
   }
   $objPHPExcel=\PHPExcel_IOFactory::load($file);//读取上传的文件
   $array=$objPHPExcel->getSheet(0)->toArray();//获取其中的数据
   return $array;
}
~~~
}
~~~

调用示例:

~~~
$xlsName='商城订单数据';
$xlsCell=[
   ['id','编号'],
   ['mingcheng','商品名称'],
   ['shuxing','商品属性'],
   ['shuliang','数量'],
];
$list=[
   [
      'id'       =>1,
      'mingcheng'=>'名称',
      'shuxing'  =>'男',
      'shuliang' =>24
   ],
   [
      'id'       =>2,
      'mingcheng'=>'名称2',
      'shuxing'  =>'男2',
      'shuliang' =>224
   ]
];
fun('Export@exportExcel',$xlsName,$xlsCell,$list);
~~~
$xlsCell 为导出表格的第一行表头部分 为数组 数组的key要和下面的$list 对应起来

导入类实例

xls 文件我们通过上传获取
$listdb=fun('Export@read_excel','../1.xls');
print_r($listdb);

https://www.kancloud.cn/php168/qibox1style/1934226 

...全文
126 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-编程语言 发布问题, 以便更快地解决您的疑问

3

社区成员

发帖
与我相关
我的任务
社区描述
齐博x1.0基于thinkphp框架开发的高性能免费开源系统 主推圈子 论坛 预定拼团分销商城模块
开源php开发语言 技术论坛(原bbs) 河北省·石家庄市
社区管理员
  • 半抹灯芯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧