我正在尝试将 [PHP_XLSXWriter] ( https://github.com/mk-j/PHP_XLSXWriter ) 与 Code Igniter 集成
这是我的控制器源代码
public function ToExcel(){
include_once APPPATH.'/third_party/xlsxwriter.class.php';
$filename = "report-".date('d-m-Y-H-i-s').".xlsx";
header('Content-disposition: attachment; filename="'.XLSXWriter::sanitize_filename($filename).'"');
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$styles = array('widths'=>[3,20,30,40], 'font'=>'Arial','font-size'=>10,'font-style'=>'bold', 'fill'=>'#eee', 'halign'=>'center', 'border'=>'left,right,top,bottom');
$styles2 = array( ['font'=>'Arial','font-size'=>10,'font-style'=>'bold', 'fill'=>'#eee', 'halign'=>'left', 'border'=>'left,right,top,bottom','fill'=>'#ffc'],['fill'=>'#fcf'],['fill'=>'#ccf'],['fill'=>'#cff'],);
$header = array(
'No 1'=>'string',
'No 2'=>'string',
'No 3'=>'string',
'No 4'=>'string',
);
$writer = new XLSXWriter();
$writer->setAuthor('Human');
$writer->writeSheetHeader('Sheet1', $header, $styles);
for($no=1;$no<=10;$no++){
$writer->writeSheetRow('Sheet1', [$no, $no, $no, $no], $styles2);
}
$writer->writeToStdOut();
}
Excel 文件已成功生成并下载,但是当我尝试使用 Ms Excel 打开它时,它说文件已损坏。问题是,原来生成的 Excel 文件的源有空单行
当我删除那个空行时,它可以毫无问题地打开
而且,如果我将该控制器代码复制到单个 php 文件(不涉及 Code Igniter),脚本和生成的 Excel 文件就像一个魅力
我如何摆脱第一个空行?
非常感谢您的帮助