使用 PHP 将 .xlsx 文件转换为 .csv 文件

Posted

技术标签:

【中文标题】使用 PHP 将 .xlsx 文件转换为 .csv 文件【英文标题】:Convert .xlsx file to .csv file using PHP 【发布时间】:2011-10-17 06:18:19 【问题描述】:

我正在寻找一种低开销的方法来使用 php.xlsx 文件转换为 .csv 文件,而不会消耗过多的内存或加载无关的类。有人吗?

【问题讨论】:

为什么这个问题被关闭了?对我来说似乎很清楚,我想阅读答案,因为我有同样的问题。 PHPExcel 有很好的 API,但会消耗大量内存。我使用xlsx2csv 并进行了一些修改,以便可以将其作为函数调用。它不需要太多内存。 请打开问题,有效问题!这太荒谬了。 嗨@xelber,通常SO用户更喜欢提问者付出更多的努力。诸如“你如何做 X”这样没有提供尝试证明的问题是主观的(可能有很多方法可以做 X)并且通常是封闭的。如果问题类似于“我正在尝试做 X,但由于错误 Z 导致 Y 无法工作”,它会很受欢迎。欲了解更多信息,请访问***.com/help/how-to-ask 【参考方案1】:

您可以使用PhpSpreadsheet 使用 PHP 读取 XLSX 文件。从那里,您只需要找出目标格式。

【讨论】:

+1 链接,我以前从未见过那个库,它正是我一直在寻找的。​​span> 这已被弃用并移至 github,然后被弃用并移至 github.com/PHPOffice/PhpSpreadsheet 的另一个项目。希望对新用户有所帮助【参考方案2】:

您可以在 PhpSpreadsheet 中使用以下代码。

$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('CSV');

$objPHPExcel = $reader->load('csv_file.csv');
$objWriter = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($objPHPExcel, 'XLSX');
$objWriter->save('excel_file.xlsx');

如果您需要降低内存使用率,您可以为处理提供一些缓存,请参阅 - https://phpspreadsheet.readthedocs.io/en/latest/topics/memory_saving/

【讨论】:

以上是关于使用 PHP 将 .xlsx 文件转换为 .csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用批处理将 xlsx 文件转换为 csv

使用 python 将 XLSX 正确转换为 CSV [关闭]

将CSV文件转换为xlsx文件Python

Python将csv转换为xlsx

JavaScript - 将 CSV 转换为 XLSX(最好不使用库)

如何在 PIG 中将 XLSX 文件转换为 CSV 文件?