首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R Linux Shell批量将多页xls转换为csv

R Linux Shell批量将多页xls转换为csv
EN

Stack Overflow用户
提问于 2013-03-03 03:04:51
回答 2查看 8K关注 0票数 3

在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>:

代码语言:javascript
复制
for f in *.xls ; do xls2csv "$f" "${f%.xls}.csv" ; done

这个脚本完成了这项工作,但是我的内容在nr14表中,而这个脚本生成的csv文件只返回我用'ssconvert‘替换了'xls2csv’的第一个表。

是否可以采用此脚本来仅提取工作簿中的工作表nr 14?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-03 03:54:41

如果您知道工作表名称,则可以执行以下操作:

代码语言:javascript
复制
for f in *.xls ; xls2csv -x "$f" -w sheetName -c "${f%.xls}.csv";done

要查看所有xls2csv详细信息,请参阅here

编辑

操作员找到了正确答案,所以我编辑了我的答案以添加它:

代码语言:javascript
复制
for f in *.xls ; do xls2csv -x "$f" -f -n 14 -c "${f%.xls}.csv" 
票数 2
EN

Stack Overflow用户

发布于 2013-03-03 04:04:51

对于这项工作,我使用了一个名为ssconverter.py的python脚本(您可以找到here,向下滚动并下载两个附件ssconverter.py和ooutils.py),我使用system()直接从R调用它。

它可以提取工作簿中的特定工作表,不仅可以按名称提取,还可以按工作表编号提取,例如:

代码语言:javascript
复制
ssconverter.py infile.xls:2 outfile.csv

来提取第二张图纸。

您需要安装python和python-uno。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15178218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档