在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")