我想将一个Excel文件(比如它的名字是“Jimmy”)转换为Jimmy.xlsx保存为启用宏的工作簿(Jimmy.xlsm)。
我需要在编码环境中完成此操作。我不能简单地通过在Excel中打开文件并指定不同的文件类型来更改此设置。我目前在R编程。如果我使用函数
file.rename("Jimmy.xlsm", "Jimmy.xlsx")
文件已损坏。
答案 0 :(得分:3)
在你的框架中,你必须阅读表格并将其写回。假设你有一个名为“testXLSM2X.xlsm”的XLSM文件(带有我猜想的宏),其中包含一个带有表格数据列的工作表。这样就可以了:
library(xlsx)
r <- read.xlsx("testXLSMtoX.xlsm", 1) # read the first sheet
# provides a data frame
# use the first column in the spreadsheet to create row names then delete that column from the data frame
# otherwise you will get an extra column of row index numbers in the first column
r2w<-data.frame(r[-1],row.names=r[,1])
w <- write.xlsx(r2w,"testXLSMtoX.xlsx") # write the sheet
当然,宏会被剥离。
这是一个答案,但我会质疑你想要完成的事情。一般来说,从Excel中控制R比从R中控制Excel更容易。我使用来自http://rcom.univie.ac.at/的REXCEL,这不是开源但非常强大。