Php 错误:文件格式或文件扩展名无效。验证文件是否已损坏
我想在我的项目中使用PHPSReadSheet库将数据导出到excel导出的文件,但当我尝试打开该文件时,此错误显示:excel无法打开该文件,因为文件格式或文件扩展名无效。验证文件是否已损坏Php 错误:文件格式或文件扩展名无效。验证文件是否已损坏,php,phpspreadsheet,Php,Phpspreadsheet,我想在我的项目中使用PHPSReadSheet库将数据导出到excel导出的文件,但当我尝试打开该文件时,此错误显示:excel无法打开该文件,因为文件格式或文件扩展名无效。验证文件是否已损坏 注意:我在我的项目中使用MVC 因此,控制器中的代码如下所示: protected function Excel($view, $variables = []) { require_once PATH_LIBRARY_FOLDER.'PhpSpreadsheet\vendor\auto
- 注意:我在我的项目中使用MVC
因此,控制器中的代码如下所示:
protected function Excel($view, $variables = []) { require_once PATH_LIBRARY_FOLDER.'PhpSpreadsheet\vendor\autoload.php'; ob_start(); // Note: make new Spreadsheet object $spreadsheet = new Spreadsheet(); // Note: get current active sheet (frist sheet) $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'Hello World !'); extract($variables); include($this->viewPath.$view.'.php'); // Note: set the header to define it is excel file header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); // Note: set the header to define excel file name header("Content-Disposition: attachment;filename=\"filename.xlsx\""); header("Cache-Control: max-age=0"); // Note: create IOFactory object $writer = IOFactory::createWriter($spreadsheet, 'xlsx'); ob_get_clean(); $writer->save('php:://output'); exit(); }
更改这行代码
$writer->save('php:://output');
到
它应该会起作用。另外,如何将数据传递到excel工作表?您可能有损坏的数据
请在autoload.php之后将其插入代码中
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
我有同样的问题,我的解决方案在这里。只需将代码放在下面: ob_end_clean() 代码:
我更改了它,但仍然无法打开该文件,并且出现了相同的错误@Budimir SkrticOK,这是用来提取($variables)的;包括($this->viewPath.$view.'.php');?你有数据输出吗?看看我更新的帖子,添加这两行代码;使用Core\App;使用PhpOffice\PhpSpreadsheet\Spreadsheet;使用PhpOffice\PhpSpreadsheet\Writer\Xlsx;谢谢,非常感谢,在我把代码编辑成:$writer->save($writer)之后,我把钱弄清楚了php://output'); Budimir Skrtic正在运行
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
ob_end_clean();
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'. $filename );
header('Cache-Control: max-age=0');
$writer->save('php://output'); // download file