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