早上好。
我需要有关将数据导出为XLSX格式的帮助。
我总是收到此消息框错误消息:
<IP Address> - download.phpをダウンロードできません。
其中说无法下载download.php。
另一方面,当我尝试将其更改为XLS格式时,我能够正确下载文件。
这是我的简单代码:
的index.php
<script>
function ExportDataTemplate()
{
window.location = "download.php";
}
</script>
<input type="button" class="MyButton" value="Data With Template" style="width: 150px;" onClick="ExportDataTemplate();"/>
的download.php
<?php
include 'Classes/PHPExcel.php';
include 'Classes/PHPExcel/IOFactory.php';
error_reporting(E_ALL ^E_NOTICE);
ini_set('memory_limit', -1);
set_time_limit (0) ;
$objReader = PHPExcel_IOFactory::createReader("Excel2007");
$objPHPExcel = $objReader->load("Templates/tl_export_xlsx.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
$objPHPExcel->getDefaultStyle()->getFont()->setName('MS Pゴシック')->setSize(10);
$worksheet = $objPHPExcel->setActiveSheetIndex(0);
$newFilename = "TL_Export_". date("YmdHi").".xlsx";
$styleArray = array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
)
);
$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->applyFromArray($styleArray);
$worksheet->setCellValueByColumnAndRow(0, 2, "1");
$worksheet->setCellValueByColumnAndRow(1, 2, "Department");
$worksheet->setCellValueByColumnAndRow(2, 2, Team Leader");
unset($styleArray);
ob_clean();
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment; filename=\"".$newFilename."\"");
header("Cache-Control: max-age=0");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
?>
提前谢谢。
顺便说一句,我使用的是Linux Cent OS, PHPExcel v1.7.6和 PHP 5.3.3
答案 0 :(得分:1)
您的代码中有简单的拼写错误。这样:
$worksheet->setCellValueByColumnAndRow(2, 2, Team Leader");
应该是这样的:
$worksheet->setCellValueByColumnAndRow(2, 2, "Team Leader");
之后,一切似乎都正常。
修改强>
因为你有IE 8,你应该尝试解决已知的兼容性问题:
Content-Type
设为application/vnd.ms-excel
Content-Disposition
中设置文件名,不带引号或单引号此外,如果您使用javascript(例如window.open
)在IE 8中下载XLSX文件,则可能无法下载该文件,因为XLSX在浏览器中被视为“无法显示”。