R 将数据导出到Excel工作表中的特定单元格中

R 将数据导出到Excel工作表中的特定单元格中,r,export-to-excel,R,Export To Excel,我需要将R中的数据框导出到Excel工作表,可以通过以下方式完成: require("xlsx") write.xlsx(x, file, sheetName="Sheet1", col.names=TRUE, row.names=TRUE, append=FALSE, showNA=TRUE) 然后,我导出的数据将从Excel工作表的单元格“A1”开始粘贴。我还可以设置append=TRUE,以便将数据添加到工作表的末尾 是否有可能将其放入一个特定的单元格中?我需要将数据帧导出到从

我需要将R中的数据框导出到Excel工作表,可以通过以下方式完成:

require("xlsx")
write.xlsx(x, file, sheetName="Sheet1", col.names=TRUE, 
    row.names=TRUE, append=FALSE, showNA=TRUE)
然后,我导出的数据将从Excel工作表的单元格“A1”开始粘贴。我还可以设置
append=TRUE
,以便将数据添加到工作表的末尾

是否有可能将其放入一个特定的单元格中?我需要将数据帧导出到从单元格
C10
开始的范围。这可能吗

更新:
该工作表包含行
1-9
和列
A-B
中的数据。因此,不可能只将空单元格添加到数据框并粘贴到excel工作表中,因为这些空单元格会删除数据。

您可以用空数据填充空单元格:

data <- matrix(1:100, ncol=5)
col.offset <- 2
row.offset <- 9
emptycols <- matrix("", ncol=col.offset, nrow=nrow(data))
data <- cbind(emptycols, data)
emptyrows <- matrix("", nrow=row.offset, ncol=ncol(data))
data <- rbind(emptyrows, data)
write.table(data, "test.csv", row.names=FALSE, col.names=FALSE)

data您可以使用软件包
XLConnect
完成

library(XLConnect)
wb <- loadWorkbook("File_result.xlsx"), create = TRUE)
createSheet(wb, name = "Sheet1")

# here, you can set the startRow and startCol. Col A = 1, B = 2,...
writeWorksheet(wb,x,"Sheet1",startRow = 10, startCol = 3, header = TRUE)

# automatically adjust column width
setColumnWidth(wb, sheet = "Sheet1", column = 3:4, width = -1)
saveWorkbook(wb)
库(XLConnect)

wb是的,此代码将删除原始数据。在这种情况下,您不必创建空的列和行,而必须先读取原始数据,然后才能将它们绑定到生成的新数据。我已经想到了这种方法。这是一个解决方案,但不是一个很好的解决方案。有没有更简单的方法?好了,我想你可以适应
read.xlsx
。请注意,如果原始数据至少有一个字符串,则所有数据都将被删除,因为它被保存为
矩阵
,而不是
数据.frame
。应该提到(2020年)如果安装了XLSX包(及其依赖项),则应卸载XLSX和XLConnect(具有XLSX依赖项)由于依赖项和包中存在一些冲突,因此应再次安装XLConnect。
library(XLConnect)
wb <- loadWorkbook("File_result.xlsx"), create = TRUE)
createSheet(wb, name = "Sheet1")

# here, you can set the startRow and startCol. Col A = 1, B = 2,...
writeWorksheet(wb,x,"Sheet1",startRow = 10, startCol = 3, header = TRUE)

# automatically adjust column width
setColumnWidth(wb, sheet = "Sheet1", column = 3:4, width = -1)
saveWorkbook(wb)