PHPExcel 创建一个新文件

Kva*_*sir 2 php ajax phpexcel

我正在尝试使用 PHPExcel 库和以下代码创建一个新的 Excel 文件:

   include ('/lib/PHPExcel/PHPExcel/IOFactory.php');
   include ('/lib/PHPExcel/PHPExcel.php');

   $objPHPExcel = new PHPExcel();
    $objPHPExcel->getProperties()
   ->setCreator("admin")
   ->setLastModifiedBy("admin")
   ->setTitle("Test")
   ->setSubject("template file")
   ->setDescription("template file")
   ->setKeywords("Prout");
   $objPHPExcel->setActiveSheetIndex(0);
   $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
   $objPHPExcel->getActiveSheet()->setTitle('Simple');
   $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
   $objWriter->save(dirname(__FILE__).'/file/test.xlsx');
Run Code Online (Sandbox Code Playgroud)

该文件已创建,但是当我尝试打开它时,我的 excel 2010 告诉我文件中存在不可读的内容,我无法打开它。

我在不同的论坛上尝试了不同的方式,但我总是得到相同的结果。我通过将 Ajax 与 jquery 结合使用来进行此操作。这可能是导致此错误的原因吗?

Kva*_*sir 5

我找到了如何解决我的问题......但只有一半。因为它适用于以下代码:

 $objPHPExcel = new PHPExcel();
   $objPHPExcel->getProperties()
   ->setCreator("Temporaris")
   ->setLastModifiedBy("Temporaris")
   ->setTitle("Template Relevé des heures intérimaires")
   ->setSubject("Template excel")
   ->setDescription("Template excel permettant la création d'un ou plusieurs relevés d'heures")
   ->setKeywords("Template excel");
   $objPHPExcel->setActiveSheetIndex(0);
   $objPHPExcel->getActiveSheet()->SetCellValue('A1', "12");

   $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
   header('Content-Type: application/vnd.ms-excel');
   header('Content-Disposition: attachment;filename="excel.xls"');
   header('Cache-Control: max-age=0');
   $writer->save('php://output');
Run Code Online (Sandbox Code Playgroud)

但它是 Excel5 不是 Excel2007,当我用 Excel2007 替换 Excel5 时,我有相同的错误消息。