我正在尝试在PHP中导出导出文件。我正在使用Codeigniter Framework。
我以这种方式导出Excel:
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename={$filename}.xls");
它以正确的格式显示Windows中的数据。但是在我最初打开它时会提示一条消息。但是当我在MAC OS中打开它时,它无法正常工作。
如何以适用于Google云端硬盘的正确格式导出Excel?我已经尝试了如上所述的许多方法,如下所示。所有这些都无法在Mac和Google Drive电子表格中正常运行:
header('Content-Disposition: attachment; filename='.$filename.'.xlsx');
header('Content-type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename='.$filename.'.xls');
header('Content-type: application/vnd.ms-excel');
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");
答案 0 :(得分:1)
即使您使用的是codeigniter,我还是建议您加载一个外部库来处理您的excel内容。
每个人都在PHP中使用一个叫做phpspreadsheet的库。
https://phpspreadsheet.readthedocs.io/en/latest/
这将解决您遇到的所有问题,甚至更多。由于它可以作为作曲家软件包安装,因此安装起来非常容易。
https://packagist.org/packages/phpoffice/phpspreadsheet
创建excel文件非常简单:
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');
并且由于您使用了codeigniter,因此可以将其与CI下载助手结合使用以强制下载文档。
答案 1 :(得分:0)
尝试一下
ini_set('memory_limit', '-1');
//ini_set('MAX_EXECUTION_TIME', '-1');
ini_set('max_execution_time', 300);
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Registration.xlsx");
header("Pragma: no-cache");
header("Expires: 0");
答案 2 :(得分:-2)
标题(“Content-Type:application / xls”);
header(“Content-Disposition:attachement; filename = export_test.xls”);