编辑Excel工作表的特定单元格
我有一个Excel工作簿,我想编辑/使用R填充一些特定的单元格,而不更改任何格式。
到目前为止,我已经尝试过XLConnect包,它似乎可以做我正在寻找的东西,我只是没有find办法做到这一点。
我直接解决问题的方法是:
wb <- loadWorkbook("file1.xls") data1 <- readWorksheet(wb, "Sheet1", header=TRUE) ## adding a value to a particular cell: data1[11,12] <- 3.2 ## rewriting old data: writeWorksheet(wb, data1, "Sheet1") saveWorkbook(wb, "new_file1.xls")
但是,这种方式新的工作簿失去了所有以前的格式(合并的单元格,公式等)。
有没有办法改变一些单元格中的值而不会丢失其余表单的格式?
这里是一个使用R来自动化Excel的例子。
library(RDCOMClient) xlApp <- COMCreate("Excel.Application") wb <- xlApp[["Workbooks"]]$Open("file.1.xls") sheet <- wb$Worksheets("Sheet1") # change the value of a single cell cell <- sheet$Cells(11,12) cell[["Value"]] <- 3.1 # change the value of a range range <- sheet$Range("A1:F1") range[["Value"]] <- paste("Col",1:6,sep="-") wb$Save() # save the workbook wb$SaveAS("new.file.xls") # save as a new workbook xlApp$Quit() # close Excel
使用XLC$STYLE_ACTION.NONE
风格的动作应该添加你的数据而不改变任何格式:
data1 <- readWorksheetFromFile("file1.xls", "Sheet1") ## adding a value to a particular cell: data1[11,12] <- 3.2 ## rewriting old data: writeWorksheetToFile("file1.xls", data1, "Sheet1", styleAction = XLC$STYLE_ACTION.NONE)
感谢马丁的build议,在评论中看到这一点。