如何在 PHP 中导出 excel 并兼容所有设备
How to export excel in PHP and compatible for all devices
我正在尝试导出 PHP 中的导出文件。我正在使用 Codeigniter 框架。
我是这样导出Excel的:
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename={$filename}.xls");
它以正确的格式显示 Windows 中的数据。但是在我第一次打开它时提示一条消息。但是当我在 MAC OS 中打开它时,它不起作用。
如何以在 Google 驱动器中也适用的正确格式导出 Excel?我已经尝试了上面和下面的很多方法。在 Mac 和 Google 云端硬盘电子表格中均无法正常工作:
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");
header("Content-Type: application/xls");
header("Content-Disposition: attachement; filename=export_test.xls");
试试这个
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");
即使您使用的是 codeigniter,我还是建议您加载一个外部库来处理您的 excel 内容。
每个人都在 PHP 中使用名为 phpspreadsheet 的库。
https://phpspreadsheet.readthedocs.io/en/latest/
这将解决您遇到的所有问题以及更多问题。它非常容易安装,因为它可以作为 composer 包使用。
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 下载助手结合使用以强制下载文档。
我正在尝试导出 PHP 中的导出文件。我正在使用 Codeigniter 框架。
我是这样导出Excel的:
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename={$filename}.xls");
它以正确的格式显示 Windows 中的数据。但是在我第一次打开它时提示一条消息。但是当我在 MAC OS 中打开它时,它不起作用。
如何以在 Google 驱动器中也适用的正确格式导出 Excel?我已经尝试了上面和下面的很多方法。在 Mac 和 Google 云端硬盘电子表格中均无法正常工作:
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");
header("Content-Type: application/xls");
header("Content-Disposition: attachement; filename=export_test.xls");
试试这个
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");
即使您使用的是 codeigniter,我还是建议您加载一个外部库来处理您的 excel 内容。
每个人都在 PHP 中使用名为 phpspreadsheet 的库。
https://phpspreadsheet.readthedocs.io/en/latest/
这将解决您遇到的所有问题以及更多问题。它非常容易安装,因为它可以作为 composer 包使用。
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 下载助手结合使用以强制下载文档。