1

引言

数据部门在和公司其他部门打交道过程中,将数据写入Excel文件经常会涉及到(从各种临时需求到日常数据报告Dashboard等等)。

通过Rdocumentation查询write to excel,会有15个R包、25个具体函数可能相关,如下图:

clipboard.png

我们有很多选择能完成写入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


marxsong
22 声望3 粉丝

引用和评论

0 条评论