1.下载并安装PHPExcel插件
从github下载PHPExcel插件,把Classes文件夹重命名为PHPExcel 并拷到TP5的vendor文件夹下。
2.使用PHPExcel导出表格
1)使用TP5的vendor()引入PHPExcel插件
vendor('PHPExcel.PHPExcel');
Vendor('phpexcel.PHPExcel.Worksheet.Drawing');
Vendor('phpexcel.PHPExcel.Writer.Excel2007');
2)实例化并获取当前活动sheet页
$objExcel = new \PHPExcel();
$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
$objActSheet = $objExcel->getActiveSheet();
3)填充数据并输出表格
$data = [
0=>[
'gap'=>'gap',
'store_id'=>'store_id',
'store_name'=>'store_name',
'branch'=>'branch',
'snum'=>'snum',
'pay_ables'=>'pay_ables',
'toatal'=>0,
'storetrade_status'=>'storetrade_status'
],
1=>[
'gap'=>'gap111',
'store_id'=>'store_id111',
'store_name'=>'store_name11',
'branch'=>'branch11',
'snum'=>'snum11',
'pay_ables'=>'pay_ables11',
'toatal'=>111,
'storetrade_status'=>'storetrade_status11'
]
];
//填充表格信息
foreach($data as $k=>$v){
$k +=2;
$objActSheet->setCellValue('A'.$k,$v['gap']);
$objActSheet->setCellValue('B'.$k, $v['store_id']);
// // 图片生成
// $objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();
// $objDrawing[$k]->setPath('public/static/admin/images/profile_small.jpg');
// // 设置宽度高度
// $objDrawing[$k]->setHeight(40);//照片高度
// $objDrawing[$k]->setWidth(40); //照片宽度
// /*设置图片要插入的单元格*/
// $objDrawing[$k]->setCoordinates('C'.$k);
// // 图片偏移距离
// $objDrawing[$k]->setOffsetX(30);
// $objDrawing[$k]->setOffsetY(12);
// $objDrawing[$k]->setWorksheet($objPHPExcel->getActiveSheet());
// 表格内容
$objActSheet->setCellValue('C'.$k, $v['store_name']);
$objActSheet->setCellValue('D'.$k, $v['branch']);
$objActSheet->setCellValue('E'.$k, $v['snum']);
$objActSheet->setCellValue('F'.$k, $v['pay_ables']);
$objActSheet->setCellValue('G'.$k, $v['toatal']);
$objActSheet->setCellValue('H'.$k, $v['storetrade_status']);
// 表格高度
$objActSheet->getRowDimension($k)->setRowHeight(20);
}
$width = array(20,20,15,10,10,30,10,15);
//设置表格的宽度
$objActSheet->getColumnDimension('A')->setWidth($width[0]);
$objActSheet->getColumnDimension('B')->setWidth($width[3]);
$objActSheet->getColumnDimension('C')->setWidth($width[5]);
$objActSheet->getColumnDimension('D')->setWidth($width[3]);
$objActSheet->getColumnDimension('E')->setWidth($width[3]);
$objActSheet->getColumnDimension('F')->setWidth($width[3]);
$objActSheet->getColumnDimension('G')->setWidth($width[3]);
$objActSheet->getColumnDimension('H')->setWidth($width[5]);
$outfile = "商家交易结算".date("Y-m-d").".xls";
ob_end_clean();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outfile.'"');
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$objWriter->save('php://output');
3.打开表格并读取数据
1)使用TP5的vendor()引入PHPExcel插件
vendor('PHPExcel.PHPExcel');
Vendor('phpexcel.PHPExcel.Worksheet.Drawing');
Vendor('phpexcel.PHPExcel.Writer.Excel2007');
2)读取数据
// 要打开的文件路径
$filename = '2018.xls';
$objReader = \PHPExcel_IOFactory::createReaderForFile($filename);
$objPHPExcel = $objReader->load($filename);
// 修改要读取的表格的sheet页
// $objPHPExcel->setActiveSheetIndex(1);
// 读取相应的单元格的数据
$date = $objPHPExcel->getActiveSheet()->getCell('A1')->getValue();
$date = date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));
dump($date);