为什么 PHPexecl 导出的表格下面是一片空白?
public function export_order_bill()
{
$objPHPExcel = new PHPExcel();
// Set the excel property
$objPHPExcel->getProperties()->setCreator("wboll")
->setLastModifiedBy("wboll")
->setTitle("Office 2007 XLSX Document")
->setSubject("Office 2007 XLSX Document")
->setDescription("Document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
if ( $this->thead ) {
foreach ( $this->thead as $key => $value ) {
// 设置头部
$objPHPExcel->createSheet();
$objPHPExcel->setActiveSheetIndex($key);
// 设置字体和字体大小
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(11);
$objPHPExcel->getDefaultStyle()->getFont()->setName('宋体');
// 设置通用的宽度和高度
for ($i=0; $i < count($value); $i++) {
// 设置单元格宽度
$objPHPExcel->getActiveSheet()->getColumnDimension($this->letters[$i])->setWidth(22);
// 设置单元格高度
$objPHPExcel->getActiveSheet()->getRowDimension($i+1)->setRowHeight(16);
}
if ( $this->mergearray ) {
foreach ( $this->mergearray[$key] as $k => $v) {
$merge = explode(':', $k);
$objPHPExcel->getActiveSheet()->setCellValue($merge[0], $v);
//合并单元格
$objPHPExcel->getActiveSheet()->mergeCells($k);
//设置居中
$objPHPExcel->getActiveSheet()->getStyle($k)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle($k)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
}
}
//内容部分
// 头部
foreach ($value as $kk => $vv) {
$letters = '';
$letters = $this->letters[$kk];
// 设置内容
$objPHPExcel->getActiveSheet()->setCellValue($letters.'2', $vv);
//设置居中
$objPHPExcel->getActiveSheet()->getStyle($letters.'2')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle($letters.'2')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
if ( $this->data ) {
foreach ($this->data[$key] as $kkk => $vvv) {
// 设置内容
$objPHPExcel->getActiveSheet()->setCellValue($letters.(3+$kkk), $vvv[$this->fieldname[$key][$kk]]);
//设置居中
$objPHPExcel->getActiveSheet()->getStyle($letters.(3+$kkk))->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle($letters.(3+$kkk))->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
}
}
}
$objPHPExcel->getActiveSheet()->setTitle($this->ismerge[$key]);
}
}
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// ob_end_clean();
// 执行导出
// header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Type: application/vnd.ms-excel');
// header('Content-Disposition: attachment;filename="' . $this->exportfilename.date("YmdHis") . '.xls"');
header('Content-Disposition: attachment;filename="订单' . date("YmdHis") . '.xls"');
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
// $objWriter->save('php://output');
$objWriter->save('/tmp/'.$this->exportfilename);
}
Excel5 改成 Excel2007