使用PHPExcel保存xlsx文件

时间:2016-08-03 10:28:52

标签: php phpexcel

我想创建一个xlsx文件,我正在使用PHPExcel。现在我只是添加了一行,我正在尝试创建并保存文件,但它不起作用。

我的代码是:

$objPHPExcel = new PHPExcel();
    $chemin = "./././files/resultats/simulation".$singleton->getNom()."_".date("d").".".date("m").".".date("y").".xml";
    $xmlFile = simplexml_load_file($chemin);

    $ligne = "3";
    $colonne = "B";

    foreach ($xmlFile as $xml) //on aprcours les attributs <Simulation>
    {
        $objPHPExcel->getActiveSheet()->setTitle('Synthèse système culture');
        $objPHPExcel->getActiveSheet()->setCellValue("B".$ligne,"Nom du système de culture");
        $objPHPExcel->getActiveSheet()->mergeCells("B3:B4");

        $ligne++; //Quand on termine une simulation, on ajoute une ligne pour afficher la simulation suivante sur la ligne du dessous
    }
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="test.xlsx"');
    header('Cache-Control: max-age=0');

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('test.xlsx');

这有什么问题?我正在尝试保存“test.xlsx”,但它不起作用。

1 个答案:

答案 0 :(得分:3)

您正在将.xlsx文件保存到服务器而不是输出流。你可以使用:

来做到这一点
$objWriter->save('php://output'); 

或者使用以下方法将保存的文件读取到输出缓冲区:

readfile('test.xlsx');