在R中,我有一个脚本获取多个xls文件<Loop over directory to get Excel content>的内容。
所有文件的大小约为2 MB。该脚本在3个文件上运行了几秒钟,但现在在Debian i7系统上运行了6个小时,在120个文件上没有结果。
因此,一个更好的解决方案是希望使用ssconvert将所有xls文件转换为csv,使用bash脚本<Linux Shell Script For Each File in a Directory Grab the filename and execute a program>:
for f in *.xls ; do xls2csv "$f" "${f%.xls}.csv" ; done这个脚本完成了这项工作,但是我的内容在nr14表中,而这个脚本生成的csv文件只返回我用'ssconvert‘替换了'xls2csv’的第一个表。
是否可以采用此脚本来仅提取工作簿中的工作表nr 14?
发布于 2013-03-03 03:54:41
如果您知道工作表名称,则可以执行以下操作:
for f in *.xls ; xls2csv -x "$f" -w sheetName -c "${f%.xls}.csv";done要查看所有xls2csv详细信息,请参阅here。
编辑
操作员找到了正确答案,所以我编辑了我的答案以添加它:
for f in *.xls ; do xls2csv -x "$f" -f -n 14 -c "${f%.xls}.csv" 发布于 2013-03-03 04:04:51
对于这项工作,我使用了一个名为ssconverter.py的python脚本(您可以找到here,向下滚动并下载两个附件ssconverter.py和ooutils.py),我使用system()直接从R调用它。
它可以提取工作簿中的特定工作表,不仅可以按名称提取,还可以按工作表编号提取,例如:
ssconverter.py infile.xls:2 outfile.csv来提取第二张图纸。
您需要安装python和python-uno。
https://stackoverflow.com/questions/15178218
复制相似问题