我想将一个保存为启用宏的工作簿(Jimmy.xlsm)的Excel文件(例如其名称为“ Jimmy”)转换为Jimmy.xlsx。

我需要在编码环境中完成此操作。我不能简单地通过在Excel中打开文件并分配其他文件类型来更改此设置。我目前正在R中编程。如果我使用该函数

file.rename("Jimmy.xlsm", "Jimmy.xlsx")


该文件已损坏。

最佳答案

在您的框架中,您必须阅读表并将其写回。假设您有一个名为“ 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,它不是开源的,但功能强大。

关于r - 在R中将.xlsm转换为.xlsx,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29594873/

10-13 02:25