0

我正在尝试将 [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 文件的源有空单行

生成的 Excel 源

当我删除那个空行时,它可以毫无问题地打开

而且,如果我将该控制器代码复制到单个 php 文件(不涉及 Code Igniter),脚本和生成的 Excel 文件就像一个魅力

我如何摆脱第一个空行?

非常感谢您的帮助

4

0 回答 0