RPackage006---xlsx

网友投稿 764 2022-09-02

RPackage006---xlsx

RPackage006---xlsx

title: “Learning R—xlsx” author: “刘栋” date: “2018年7月10日” output: word_document

knitr::opts_chunk$set(eval = FALSE, include = FALSE)

1.需求

工作中需要把单变量分析的结果保存在Excel中,结果分为:数据和图片。利用​​xlsx​​这个包,可以完成大部分工作。

2.环境配置

依赖的包为​​'tidyverse', 'rJava', 'xlsxjars', 'xlsx'​​​,其中​​rJava​​​需要配置​​java​​​环境。具体可以参考。其余不赘~

3.xlsx包的使用

直接贴代码,原理我也不清楚~

3.1 新建Excel

# Setupx <- c('tidyverse', 'rJava', 'xlsxjars', 'xlsx')sapply(X=x, FUN = require, character.only = TRUE)excel_path <- "../Data/test.xlsx"# 新建Excel和Sheetwb <- createWorkbook() sheet1 <- createSheet(wb, "Sheet1")sheet2 <- createSheet(wb, "Sheet2")sheet3 <- createSheet(wb, "Sheet3")#保存ExcelsaveWorkbook(wb, excel_path)

结果:

3.2 载入Excel,增删Sheet

# 设置路径&载入数据excel_path <- "../Data/test.xlsx"wb <- loadWorkbook(excel_path)# 查看sheet个数wb$getNumberOfSheets() # 查看sheet名字names(getSheets(wb))# 新增sheet4addsheet <- createSheet(wb, sheetName="Sheet4")# 删除原有的sheet1removeSheet(wb, sheetName="Sheet1")# 保存修改之后的结果saveWorkbook(wb, excel_path)

3.3 载入Excel,保存图片

# 新建图片# Create graph---------dcs <- ggplot(mtcars) + geom_point(aes(cyl, disp))# Export Pic -----------# 貌似要求pic_path <- "../Picture/dcs.jpeg"png(filename = pic_path)plot(dcs)dev.off()# 载入Excelexcel_path <- "../Data/test.xlsx"wb <- loadWorkbook(excel_path)# 获取Sheet2ws <- getSheets(wb)$Sheet2# 添加图片addPicture( file = "../Picture/dcs.jpeg", sheet = ws, # 图片保存的sheet startRow = 2,# 在sheet中的位置 startColumn = 2)saveWorkbook(wb, excel_path)# 删除图片# unlink(pic_path)

3.4 保存数据到Excel

# 载入Excelexcel_path <- "../Data/test.xlsx"wb <- loadWorkbook(excel_path)# 新增sheet5Sheet5 <- createSheet(wb, sheetName="Sheet5")addDataFrame( x = mtcars,# 要保存的数据框 sheet = Sheet5,# 保存的位置 col.names = TRUE,# 是否保留列名 row.names = TRUE,# 是否保留行名 startRow = 1,#数据保存的起始位置 startColumn = 1,#数据保存的起始位置 colStyle = NULL,# 默认是NULL,如果是时间类型数据,保存时自动转换格式 colnamesStyle = NULL,# 列名的格式 rownamesStyle = NULL,# 行名的格式 showNA = FALSE,# 空值是否展示,默认不展示,即保留为空白格 characterNA = "",# NA展示位空字符串和上面showNA参数有关系 byrow = FALSE )saveWorkbook(wb, excel_path)

3.5 改变数据格式,保存数据到Excel

# 载入Excelexcel_path <- "../Data/test.xlsx"wb <- loadWorkbook(excel_path)# 新增sheet6Sheet6 <- createSheet(wb, sheetName = "Sheet6")cs1 <-CellStyle(wb) + Font(wb, isItalic = TRUE)# rowcolumnscs2 <- CellStyle(wb) + Font(wb, color = "blue")#蓝色cs3 <- CellStyle(wb) + Font(wb, isBold = TRUE) + Border() # header加粗addDataFrame( x = mtcars,# 要保存的数据框 sheet = Sheet6,# 保存的位置 col.names = TRUE,# 是否保留列名 row.names = TRUE,# 是否保留行名 startRow = 1,#数据保存的起始位置 startColumn = 1,#数据保存的起始位置 colStyle=list(`2`=cs2, `3`=cs2),# 第二、三列蓝色 colnamesStyle = cs3,# 列名的格式 rownamesStyle = cs1,# 行名的格式 showNA = FALSE,# 空值是否展示,默认不展示,即保留为空白格 characterNA = "",# NA展示位空字符串和上面showNA参数有关系 byrow = FALSE )saveWorkbook(wb, excel_path)

3.6 更多的样式

Excel常见的格式可以在R中进行设置,如字体、文本位置、填充背景色、加边框等等。

library(xlsx)xl_path <- "../Data/test.xlsx"wb <- loadWorkbook(xl_path)sheet <- createSheet(wb, "type")## 设置样式cs1 <- CellStyle(wb) + Alignment(horizontal = "ALIGN_CENTER", vertical = "VERTICAL_CENTER") + # 对齐方式,水平&竖直居中 Border( color = "black", position = c("TOP", "RIGHT" , "LEFT", "BOTTOM"), pen = c("BORDER_THIN", "BORDER_THIN", "BORDER_THIN", "BORDER_THIN")) + # 所有边框加框线&黑色框线 Font(wb, isItalic = TRUE, isBold = TRUE)+ # 字体加粗、Italic字体 Fill( foregroundColor = "cornflowerblue", backgroundColor = "cornflowerblue", pattern = "SOLID_FOREGROUND" ) #背景色为矢车菊蓝## 另外一个样式,其实逻辑一样的cs2 <- CellStyle(wb) + Border( color = "black", position = c("TOP", "RIGHT" , "LEFT", "BOTTOM"), pen = c("BORDER_THIN", "BORDER_THIN", "BORDER_THIN", "BORDER_THIN") )+#黑色细框线 Fill( foregroundColor = "lightblue", backgroundColor = "lightblue", pattern = "SOLID_FOREGROUND" )# 浅蓝色填充 cs3 <- CellStyle(wb) + Border( color = "black", position = c("TOP", "RIGHT" , "LEFT", "BOTTOM"), pen = c("BORDER_THIN", "BORDER_THIN", "BORDER_THIN", "BORDER_THIN") )#黑色细框线addDataFrame( x=mtcars, sheet=sheet, row.names = TRUE, colnamesStyle = cs1,# 列名应用cs1样式 colStyle = list(`1`=cs2,`2`=cs3,`3`=cs3,`4`=cs3,`5`=cs3,`6`=cs3,`7`=cs3,`8`=cs3,`9`=cs3,`10`=cs3,`11`=cs3)) ## 路径注意一下saveWorkbook(wb, "../Data/test.xlsx")

2018-07-10 于南京建邺区新城科技园

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Pycharm基本配置
下一篇:hibernate和spring的整合
相关文章

 发表评论

暂时没有评论,来抢沙发吧~