/**
* @DESC 数据导出
* @notice max column is z OR 26,overiload will be ignored
* @notice
* @example
* $data = [[1, "小明", "25"]];
* $header = ["id", "姓名", "年龄"];
* Myhelpers::exportData($data, $header);
* @return void, Browser direct output
*/
public static function exportData($data, $header, $title = "test", $filename = "data")
{
if (!is_array($data) || !is_array($header)) return false;
$objPHPExcel = new \PHPExcel();
// Set properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
// Add some data
$obj = $objPHPExcel->setActiveSheetIndex(0);
//添加头部
$hk = 0;
foreach ($header as $k => $v) {
$colum = \PHPExcel_Cell::stringFromColumnIndex($hk);
$obj->setCellValue($colum . "1", $v);
$hk += 1;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach ($data as $key => $rows) //行写入
{
$span = 0;
foreach ($rows as $keyName => $value) // 列写入
{
$j = \PHPExcel_Cell::stringFromColumnIndex($span);
// 前面加一个空格 会将值变成字符串
$objActSheet->setCellValue($j . $column, ' '.$value);
$span++;
}
$column++;
}
// Rename sheet
if ($title) {
$objActSheet->setTitle($title);
}
// Save
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header("Pragma:public");
// header('Content-type: application/vnd.ms-excel');
header("Content-Type:application/vnd.ms-excel;name=\"{$filename}.xlsx\"");
// header("Content-Type:application/x-msexecl;name=\"{$filename}.xls\"");
header("Content-Disposition:inline;filename=\"{$filename}.xlsx\"");
$objWriter->save("php://output");
}