在R中创buildxls文件,并在列名称的顶部添加一个标题
我有几百个xls
文件,其中有不正确的数据。
我需要打开他们进行更正并保存。
进行更正是一件小事,所以我已经为此编写了代码,诀窍是每个表都有一个从第3行开始的表,前两行包含合法标题。
我习惯于使用readxl
包,但不提供保存电子表格的工具。 所以今天我一直在试验xslx
包,但是我不太清楚如何使它工作。
在readr
我能够使用以下内容来编写带有免责声明的csv
文件:
write_csv(Disclaimer, filepath,col_names = FALSE) write_csv(my.data.frame,filepath, col_names = TRUE,append =TRUE)
在xlsx
这不起作用:
write.xlsx(filepath,Disclaimer,"Sheet1",col.names = FALSE) write.xlsx(filepath,my.data.frame,"Sheet1",col.names = TRUE,append=TRUE)
这yeilds一个Java错误:
java.lang.IllegalArgumentException:工作簿已经包含这个名字的一个表
所以我的问题是你怎么能写一个xls
文件(或者xlsx
而不是csv
),这样它的头部就在acutual表格的上方。
为了logging我的工作簿有两张纸,两张纸都有免责声明,但是它们包含不同的表格。
我真的希望我可以离开Excel文件,但我需要保持原来的格式。
另外,我打算使用其他软件包,但我不熟悉其他软件包(在我们讲话时重新研究XLConnect
)。
我想到了!!!
xlsx
还有其他一些低级function,可以让您逐个构build每个工作表。
看到我的testing代码如下:
wb <- createWorkbook(type = "xls") sh1 <- createSheet(wb,sheetName = "Sheet1") addDataFrame(data.frame("Disclaimer"=c("Disclaimer")),sheet = sh1,row.names = FALSE,startRow = 1,col.names = FALSE) addDataFrame(data.frame("Col1" = c(1,2,3),"Col2"=4:6),sheet = sh1,row.names = FALSE,startRow = 2) sh2 <- createSheet(wb,sheetName = "Sheet2") addDataFrame(data.frame("Disclaimer"=c("Disclaimer")),sheet = sh2,row.names = FALSE,startRow = 1,col.names = FALSE) addDataFrame(data.frame("Col1" = c(1,2,3),"Col2"=4:6),sheet = sh2,row.names = FALSE,startRow = 2) saveWorkbook(wb,"test_wb.xls")