R 如何使用xlsx包向xlsx文件添加顶部空白行?
我想在我创建的xlsx文件的顶部添加两个空行 到目前为止,我已经尝试:R 如何使用xlsx包向xlsx文件添加顶部空白行?,r,xlsx,R,Xlsx,我想在我创建的xlsx文件的顶部添加两个空行 到目前为止,我已经尝试: library("xlsx") fn1 <- 'test1.xlsx' fn2 <- 'test2.xlsx' write.xlsx(matrix(rnorm(25),5),fn1) wb <- loadWorkbook(fn1) rows <- getRows(getSheets(wb)[[1]]) for(i in 1:length(rows)) rows[[i]]$setRowNu
library("xlsx")
fn1 <- 'test1.xlsx'
fn2 <- 'test2.xlsx'
write.xlsx(matrix(rnorm(25),5),fn1)
wb <- loadWorkbook(fn1)
rows <- getRows(getSheets(wb)[[1]])
for(i in 1:length(rows))
rows[[i]]$setRowNum(as.integer(i+1))
saveWorkbook(wb,fn2)
库(“xlsx”)
fn1我对您试图对for循环执行的操作感到有点困惑,但是:
您可以创建一个虚拟对象,其列数与wb相同,然后使用rbind()连接虚拟对象和wb以创建fn2
fn1 <- 'test1.xlsx'
wb <- loadWorkbook(fn1)
dummy <- wb[c(1,2),]
# set all values of dummy to whatever you want, e.g. "NA" or 0
fn2 <- rbind(dummy, wb)
saveWorkbook( fn2)
因此xlsx包实际上与java库接口,以便引入和修改工作簿。read.xlsx和write.xlsx函数是方便的包装器,可以在R中读取和写入数据帧,而无需手动编写代码,自己使用java对象解析单个单元格和行。loadWorkbook和getRows函数允许您访问实际的java对象,然后可以使用这些对象修改单元格样式等内容
但是,如果您只想在输出电子表格之前向其添加一个空行,那么最简单的方法是在导出数据框之前向其添加一个空行(如Chris所述)。您可以在代码中使用以下变量来完成此操作:
library("xlsx")
fn1 <- 'test1.xlsx'
fn2 <- 'test2.xlsx'
# I have added row.names=FALSE because the read.xlsx function
# does not have a parameter to include row names
write.xlsx(matrix(rnorm(25),5),fn1,row.names=FALSE)
# If you read your data back in using the read.xlsx function
# you will have a data frame rather than a series of java object references
wb <- read.xlsx(fn1,1)
# Now that we have a data frame we can add a blank row at the top
wb<-rbind.data.frame(rep("",5),wb)
# Then we write to the file using the same function as before
write.xlsx(wb,fn2,row.names=FALSE)
库(“xlsx”)
fn1我在wb[c(1,2),]中得到了错误error:类型为'S4'的对象是不可子集的
P.S.。我试图将循环添加到每行的行号中,使其向下显示两行,但它只是删除了所有行。听起来wb不是作为数据帧加载的,而是作为列表或向量加载的。尝试str(wb),您可能必须在添加rowsGreat答案之前强制wb!不幸的是,行名仍然写在最上面一行,后面有两个空行。行名称前需要两行空白