使用R处理数据时在xlsm文件中保留宏

时间:2018-07-17 05:12:24

标签: r excel

使用R处理数据时,是否可以将宏保存在.xlsm文件中?

我正在使用“ readxl”包中的“ read_excel”功能将xlsm数据读入R中,进行处理,然后使用“ openxlsx”包中的“ write.xlsx”功能将其导出回Excel。

但是,write.xlsx函数不允许输出为.xlsm文件。

我尝试了另一种方法,如Populating Excel Macro-enabled cells from R/outside environment中所述,使用“ xlsx”包中的loadWorkbook和saveWorkbook函数。

但是,这一次,我的数据处理代码不再起作用,产生了一个错误,“ apply(df,1,setfunction)中的错误:dim(X)必须具有正长度”。

使用openxlsx和readxl软件包时,我的代码工作正常,除了所有宏都在输出中丢失之外。

使用R处理数据时,是否可以将宏保存在.xlsm文件中?

    df<-loadWorkbook("data.xlsm") # originally was df<read_excel("data.xlsm")

    setfunction <- function (x) {
                set1 <- strsplit(x[[2]], split=",")
                set2 <- strsplit(x[[3]], split=",")
                trimset1 <- sapply(set1[[1]], str_trim)
                trimset2 <- sapply(set2[[1]], str_trim)
                set3 <- setdiff(trimset1, trimset2)
                newset3 <- paste(set3, collapse = ', ')
    }

    df$newcol <- apply(df, 1, setfunction)

    saveWorkbook("data2.xlsm") # originally was write.xlsx(df, file = data2.xlsx")

0 个答案:

没有答案