我们这里是导出的标准excel非table格式生成的
首先我们需要安装一下下面的插件插件安装完后不需要设置安装完成即可。
插件地址:https://x1.php168.com/appstore/content/show/id/295.html 后台搜索这个插件安装即可 不需要任何设置。
<?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 xls 文件
* @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='商城订单数据'; //导出的文件名
//导出文件的表头 这里的id mingceng 等要和下面的对应起来
$xlsCell=[
['id','编号'],
['mingcheng','商品名称'],
['shuxing','商品属性'],
['shuliang','数量'],
];
//导出的数据 这里的id mingcheng等要和上面的对应起来
$list=[
[
'id' =>1,
'mingcheng'=>'名称',
'shuxing' =>'男',
'shuliang' =>24
],
[
'id' =>2,
'mingcheng'=>'名称2',
'shuxing' =>'男2',
'shuliang' =>224
]
];
fun('Export@exportExcel',$xlsName,$xlsCell,$list);
导入实例:
xls 文件我们通过上传获取
$listdb=fun('Export@read_excel','../1.xls');
print_r($listdb);