/** * @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"); }