数据部门在和公司其他部门打交道过程中,将数据写入Excel文件经常会涉及到(从各种临时需求到日常数据报告Dashboard等等)。
通过Rdocumentation(http://www.rdocumentation.org)查询write to excel,会有15个R包、25个具体函数可能相关,如下图:
我们有很多选择能完成写入Excel文件任务,本文推荐两个在实践中较常用的R包:xlsx包和XLConnect包。这两个包作者都是通过Java来写入Excel文件,所以性能相对比较稳定。
那我们来看下这两个包的具体示例:
xlsx包
首先,创建数据集:
sample.dataframe
如果你Excel文件没有创建,则可以直接将数据写入到新Excel文件中:
123library(xlsx) #load the packagewrite.xlsx(x = sample.dataframe, file = "test.excelfile.xlsx", sheetName = "TestSheet", row.names = FALSE)
如果Excel文件已经存在,则可以写入数据到新的sheet,或者直接写到现有的sheet中,如workbook.sheets workbook.test :
123addDataFrame(x = sample.dataframe, sheet = workbook.test, row.names = FALSE, startColumn = 4) # 从第一行、第四列写入数据saveWorkbook(workbook.sheets, "test.excelfile.xlsx") #保存文件
XLConnect包
第一步:制作Excel模版文件
123library(XLConnect) #load the packageExcelFile <- "/home/songning/scoreCard-new/DailyScoreCard_20160307.xls" ## 模版template <- paste0("/home/songning/scoreCard-new/ResultOutput/DailyScoreCard_",Sys.Date()-1,".xls") ## 文件名file.copy(ExcelFile, template) ## 拷贝模版文件
第二步:写入数据到Excel
123writeWorksheetToFile(template, data=data_frame, sheet="sheet1",header = F,startRow=4, startCol = 2)## 从第四行、第二列写入模版文件中sheet1表中。
具体函数的参数解释,大家可以参考帮助文件。
参考:
Rdocumentation:http://www.rdocumentation.org;
XLConnect: Excel Connector for R:https://cran.r-project.org/web/packages/XLConnect/index.html;
xlsx: Read, write, format Excel 2007 and Excel 97/2000/XP/2003 files:https://cran.r-project.org/web/packages/xlsx/index.html。