【发布时间】:2015-01-12 05:34:03
【问题描述】:
我有一个 Excel 工作簿,我想使用 R 编辑/填充其中的一些特定单元格,而不更改任何格式。
到目前为止,我已经尝试了 XLConnect 包,它似乎可以满足我的需求,但我只是没有找到方法。
我直截了当解决问题的方法:
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")
但是,这样新工作簿会丢失所有以前的格式(合并的单元格、公式等)。
有没有办法更改某些单元格中的值而不会丢失剩余工作表的任何格式?
【问题讨论】:
-
这没有多大意义。如果您不想替换单元格的内容(例如其公式),那么......不要这样做。如果试图将东西放入合并单元格的一部分,那么拆分合并似乎是可取的。
-
如果您运行的是 Windows,(显然您已经安装了 Excel),您可以使用
RDCOMClient包从 R 自动化 Excel(以及其他任何东西...)。 -
请阅读软件包的帮助页面并注意
?writeWorksheet页面确实链接到?writeNamedRegion。 (难道你不希望一个名为“writeWorksheet”的函数来替换整个工作表吗?) -
@BondedDust 我确实想替换单元格的内容,但我想保留剩余工作表的所有先前格式 - 与以前相同。就像,如果我有一个模板,里面有我想填充的空白单元格。通过使用
writeWorksheet,我将所有信息写为一个data.frame,因此所有格式(合并单元格、文本大小、列/行大小等)都消失了。 -
我认为有,但你的问题没有示例文件,我构建测试用例的意愿很低。