使用 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 文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 将 XLSX 正确转换为 CSV [关闭]