我有一个非常直接的问题,我认为这是相当标准的。不幸的是,我找到正确的语法来解决它有些困难。我只想将数据(这里:一个简单的整数)写入现有的excel表。
我发现,这样做的好方法是使用包'xlsx'。
require(xlsx) # Load the xlsx package
接下来,我必须加载文件,并加载所有工作表。
wb <- loadWorkbook("test.excelfile.xls") # Load the xls file
sheets <- getSheets(wb) # load all sheet objects
然后我输入值。这些是产生错误的行。
addDataFrame(data.frame(123), sheets[1]) # Error in addDataFrame(data.frame(123), sheets[1]) : attempt to apply non-function
addDataFrame(123, sheets[1]) # alternative try, same error
最后,我保存了工作簿。
saveWorkbook(wb, "test.excelfile.xls") # not checked yet because error occurs in line above
对我来说,重要的是已经存在的xls文件没有被销毁。我想保留所有工作表,VBA宏和表单元素。只应从R中更改一些单元格。
非常感谢你的帮助,
的Matthias
答案 0 :(得分:8)
最后,我设法做了我想要的。我用谷歌搜索了“Excel连接工具”(参见Carl Witthoft的推荐)并发现使用的好包装是XLConnect。
以下命令将一个简单数字写入一个单元格。它们也使VBA宏保持原样。
require(XLConnect)
# Load workbook; create if not existing
wb <- loadWorkbook("MC_Auswertung.xls", create = TRUE)
# write to the workbook
writeWorksheet(wb, 750, sheet="Auswertung", # write '750' to sheet 'Auswertung' in workbook 'wb'
startRow=8, startCol=4, # specify the cell to write to
header=FALSE) # do not write a header row
# Save workbook
saveWorkbook(wb)
只有一件事让我感到震惊。在操作之前,xls文件有32.953字节。在上面的操作之后它只有28.958字节。因此大量“数据”消失了。我不知道发生了什么?细胞内容仍在那里。图表,背景和边框样式也是如此......
期待你的命令; - )