【发布时间】:2020-04-02 12:38:10
【问题描述】:
长期阅读,第一次写作......
我正在编写一些 R 代码,这些代码将从其他来源获取一些数据输入。 一个地方只能以 .xls 格式提供数据。虽然 R 中有很好的 excel 功能,但无法从 R 中读取这个 .xls 文件。但是如果我将它转换为 .xlsx,R 处理得很好。所以我要转换它。
在直接的 cmd 输入中,我无法通过以下方式进行转换:
"C:/Program Files (x86)/Microsoft Office/root/Office16/excelcnv.exe" -oice "C:/Users/my_name/OneDrive - work/Documents/Dashboard code/New Code/work_STD_TEMPLATE.xls" "C:/Users/my_name/OneDrive - work/Documents/Dashboard code/New Code/work_STD_TEMPLATE2.xlsx"
但我希望自动化代码,所以最好实现它。有关我可以编译和运行的版本,请参见下文。
R代码:
args = c("C:/Program Files (x86)/Microsoft Office/root/Office16/excelcnv.exe" ,
'-oice' , "C:/Users/my_name/OneDrive - work/Documents/Dashboard code/New Code/work_STD_TEMPLATE.xls" , "C:/Users/my_name/OneDrive - work/Documents/Dashboard code/New Code/work_STD_TEMPLATE2.xlsx");
system2(args)
但是当它运行时它会停止系统并最终提示一个弹出框告诉我:
excelcnv.exe - 应用程序错误 应用程序无法正确启动 (0x0000142)。
为此,我需要有头脑的人。提前致谢
昨晚找到答案:
args = "\"C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\excelcnv.exe\" -oice \"C:\\Users\\my_name\\OneDrive - work\\Documents\\Dashboard code\\New Code\\work_STD_TEMPLATE.xls\" \"C:\\Users\\my_name\\OneDrive - work\\Documents\\Dashboard code\\New Code\\work_STD_TEMPLATE2.xlsx\""
system("cmd.exe" , input = args)
我需要转义转义字符...所以 \ 必须是 \ 并且 " 必须是 \"
【问题讨论】:
-
你试过R包xlsx吗?
-
或 readxl - readxl.tidyverse.org?
-
两者都是。普通 excel 也不会打开文件,但只有在转换为 .xlsx 时才会触摸它(数据提取来自遗留系统 anno 1997,打开格式时纯属癌症。多色和不同的字体。但我需要数据)