R语言-用xlsx包在已有数据的工作表中添加数据

xlsx包中的函数

函数参数作用
xlsx::write.xlsx()x, file, sheetName=“Sheet1”, col.names=TRUE, row.names=TRUE, append=FALSE, showNA=TRUE, password=NULL写入数据到excel表中
xlsx::read.xlsx()file, sheetIndex, sheetName=NULL, rowIndex=NULL,startRow=NULL,endRow=NULL, colIndex=NULL,as.data.frame=TRUE, header=TRUE, colClasses=NA,keepFormulas=FALSE, encoding=“unknown”, password=NULL, …读取excel表中的数据
xlsx::readColumns()sheet,startColumn,endColumn,startRow,endRow=NULL,as.data.frame=TRUE,header=TRUE, colClasses=NA, …
xlsx::createWorkbook()type=“xlsx”用于生成一个新的excel工作簿
xlsx::loadWorkbook()file, password=NULL用于加载当前已存在的excel工作簿
xlsx::saveWorkbook()wb, file, password=NULL使用完必须保存工作簿
xlsx::createSheet()wb, sheetName=“Sheet1”用于生成一个新的sheet工作表
xlsx::removeSheet()wb, sheetName=“Sheet1”用于删除工作表
xlsx::getSheets()wb用于获取当前工作簿里的工作表清单,返回值是list
xlsx::addDataFrame()x, sheet, col.names=TRUE, row.names=TRUE,startRow=1, startColumn=1,colStyle=NULL, colnamesStyle=NULL,rownamesStyle=NULL, showNA=FALSE, characterNA=””, byrow=FALSE用于获取当前工作簿里的工作表清单,返回值是list
getFirstRowNum()无参,该函数必须基于sheet对象用于定位表内数据第一行的索引
getLastRowNum()无参,该函数必须基于sheet对象用于定位表内数据最后一行的索引
R语言-在原有的excel数据表中添加新的数据

#install.packages(“xlsx”) //需要提前安装rjava包
#library(xlsx)
####1. 创建一个工作簿####
####2. 创建完的工作簿不含工作表####
####3. 在新建的工作簿上创建一个工作表####
####4. 为工作表添加数据####
####5. 保存工作簿####
####6. 在已有数据的工作表中添加新的数据####
####7. 保存工作簿####

wb<-xlsx::createWorkbook()                      #创建工作簿,创建完的工作簿不含工作表
#sheets<-getSheets(wb) 
sheet <- createSheet(wb,sheetName = "newSheet1")#创建一个工作表,命名为newSheet1
addDataFrame(e[1:35,],sheet,row.names = T)      #为工作表中添加数据
###为已有数据的工作表中添加新的数据
if (sheet$getLastRowNum() != 0) { 
  addDataFrame(e[1:32,],sheet,row.names = F,col.names = F,startRow = sheet$getLastRowNum() + 10)
} else { 
  addDataFrame(e[1:32,],sheet,row.names = F)
}
saveWorkbook(wb,file = "1.xlsx")								#保存在1.xlsx的excel表中

xlsx::write.xlsx()函数中的append参数:用来附加工作表

append附加到现有文件中,即在工作簿中添加新的工作表
当append=TRNE时,创建一个新的工作表在工作簿中
当append=FALSE时,新添加的数据会覆盖工作表中原有的数据

x=data.frame(name=c("王宏", "马兰", "刘涛", "张峰"), sex=c("男", "女", "男", "男"), score=c(90, 85, 82, 93))
y=data.frame(name=c("张三","王五","李四"),sex=c("男","女","男"),score=c(100,90,89))
write.xlsx(x,"1.xlsx","sheet1",append=TRUE)       #创建一个新的工作表
write.xlsx(y,"1.xlsx","sheet1",append = FALSE)    #将原sheet1工作表中的内容覆盖
write.xlsx(x,"1.xlsx","sheet1",append=TRUE)       #The workbook already contains a sheet of this name:工作簿中已含有该工作表
write.xlsx(x,"1.xlsx","sheet1",append=FALSE)      #重新覆盖工作表中的内容
    原文作者:weixin_51077152
    原文地址: https://blog.csdn.net/weixin_51077152/article/details/119678150
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞