html 中的js window.open(url)
php文件 , 这里我的是thinkphp5 老项目, phpoffice 是手动放进vendor文件夹中
<?php
/*
Create By 2022/1/28 - 15:47 - Delimma
To overcome difficulties!
*/
namespace app\at\controller;
use think\Controller;
use think\Db;
class Excel extends Controller
{
/*
* columName 表头数组
* data 对应的数据(必须顺序对应)
*/
public function export($columName = [] , $data = [])
{
vendor('PHPExcel.PHPExcel');
vendor('PHPExcel.PHPExcel.IOFactory');
ini_set("memory_limit","2048m");
$fileName=time(); $setTitle='Sheet1';
$fileName = iconv("utf-8", "gb2312", $fileName);
// $columName = [ '反馈意见', '报案号' ,'运单号','箱号','保单号码','出险时间','状态','定损时间','是否分配'];
//实例化PHPExcel类
$PHPExcel = new \PHPExcel();
$PHPSheet = $PHPExcel->getActiveSheet();
$PHPSheet -> setTitle($setTitle);
$letter = [
'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'
];
//把列名写入第1行 A1 B1 C1 ...
for ($i=0; $i < count($columName); $i++) {
//$letter[$i]1 = A1 B1 C1 $letter[$i] = 列1 列2 列3
$PHPSheet->setCellValue("$letter[$i]1","$columName[$i]");
}
foreach ($data as $key => $val) {
foreach (array_values($val) as $key2 => $val2) {
$PHPSheet->setCellValue($letter[$key2].($key+2),$val2);
}
}
$PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,'Excel2007');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename='.$fileName.'.xlsx');
header('Cache-Control: max-age=0');
$PHPWriter->save("php://output");
exit ;
}
}