data.table::fread 在Excel工作簿中读取所有工作表
在这段对话中,问题的出现是作者需要从一个XLSX文件中读取多个工作表。作者最初尝试使用openxlsx::read.xlsx
来实现这个目标,但是这个方法需要通过循环遍历每个工作表,并将每个工作表的数据追加到一个数据框中。作者还注意到,如果工作表的列结构和数据类型不一致,可能需要对数据进行标准化处理。然而,作者对openxlsx的作者进行了一些调查,并发现这个包在处理大于300MB的工作簿时可能会出现内存问题。
为了解决这个问题,作者尝试了一个基于Python的命令行工具xlsx2csv
,这个工具可以处理大型的XLSX文件。作者在Linux系统上安装了这个工具,并通过命令行运行xlsx2csv
命令来将每个工作表转换为一个单独的CSV文件。还有一个例子,展示了如何在命令行中使用xlsx2csv
工具。
然而,有一个读者在使用xlsx2csv
时遇到了错误,错误信息显示了一个无效的语法。作者指出这可能是因为读者在Python解释器中运行了这个程序,而不是在命令行提示符下运行。
为了解决从一个XLSX文件中读取多个工作表的问题,作者最初尝试了openxlsx::read.xlsx
方法,但是由于内存问题,作者转而尝试了基于Python的命令行工具xlsx2csv
。读者在使用xlsx2csv
时遇到了一些问题,但是作者提供了解决方法。
总体来说,这个问题的出现是因为作者需要从一个XLSX文件中读取多个工作表,而解决方法是使用xlsx2csv
工具来将每个工作表转换为一个单独的CSV文件。