R语言高效数据处理-自定义格式EXCEL数据输出
注:以下代码均为实际数据处理中的笔记摘录,所以很零散
在实际数据处理中为了提升效率,将Excel报表交付给需求方时减少手动调整的环节很有必要
1、excel工作薄创建保存
#工作薄创建
data_deal_main01<- createWorkbook()
工作薄中添加新的sheet表,当需要在同一个工作薄添加多个时可以直接赋予表格名称新增
addWorksheet(
data_deal_main01,
'data_deal_c01',
gridLines = TRUE,#是否隐藏单元格网格线
tabColour = NULL,#工作表选项卡颜色设置
zoom = 100,#工作表缩放大小
visible = TRUE)#工作表是否隐藏
#工作薄保存
saveWorkbook(data_deal_main01, "data_deal_main01_donefile.xlsx",
overwrite = TRUE)#是否重写
2、工作表单元格格式配置与添加
#创建单元格格式
set_style <- createStyle(fontColour = '#FFFFFF', #字体颜色
fgFill = '#2f4cc3',#单元格填充颜色
halign = 'center', #单元格数据水平对齐
valign = 'bottom',#单元格数据垂直对齐
textDecoration = 'bold',#字体加粗
border = 'TopBottomLeftRight')#单元格边框的设置
#1.1单独添加:对指定单元格添加已配置的格式
addStyle(data_deal_main01,
sheet='data_deal_c01',
style=set_style,
rows=2:100,
cols=1:4,
gridExpand = FALSE, #将格式应用于参数中的行列组合,否则格式添加要求行列数相等
stack = FALSE)#应用的单元格格式是对已有的合并还是替换
#1.2写入数据时添加:将数据写入工作薄,并附带格式(没有对整个表格设定格式的参数)
writeData(data_deal_main01, #工作薄名称
'data_deal_c01',#sheet表名称
data_eg_test,#写入的数据集
headerStyle=set_style,#已经配置的表头格式
borders = openxlsx_getOp('borders','all'),#数据边框线覆盖范围
borderStyle = openxlsx_getOp('borderStyle','thin'))#数据边框线格式
3、工作表字段添加筛选功能的3种方式
单独对指定表的指定列添加筛选
addFilter(data_deal_main01, #工作薄名称
'data_test4', #工作表名称
row = 1,#所在的行
cols = 1:3)#对应哪些列添加筛选
#对工作表写入数据时添加筛选,但是是给所有字段
writeData(data_deal_main01, 'data_test4', x = iris[1:100,], withFilter = TRUE)
#这个函数在工作表写入数据时会自动为字段添加筛选
writeDataTable(data_deal_main01, 'data_test4', iris[1:100,])
4、工作表的复制克隆
cloneWorksheet(data_deal_main01,
'data_deal_c02', #新表名称
clonedSheet ='data_deal_c01')#复制的对象表
5、同一个工作表写入多份数据
同一个sheet中写入多个数据,多份数据要给定开始列,写入数据则不会覆盖已有数据
createnameregion创建区域数据的名称,便于在同一个sheet中写入多份数据
createNamedRegion(
data_deal_main01 = data_deal_main01,
sheet = 1,
name = "data_deal_c04",
rows = 1:(nrow(data_deal_c04) + 1),
cols = 1:ncol(data_deal_c04)
)
就像下面的数据输出示例
#设置表格列宽度
setColWidths(
data_deal_main01,
sheet='data_deal_c01',
cols=1:5,
widths =15)
#格式化表格数据
conditionalFormatting(wb,'data_deal_c01',
cols=1:5,
rows=1:nrow(data_deal_c01)+1,
rule='>=0',
style=sheet_style)
#数据写入
writeData(data_deal_main01, 'data_deal_test1', data_deal_c01,startCol=1)
writeData(data_deal_main01, 'data_deal_test1', data_deal_c02,startCol=7)
#保存工作薄
saveWorkbook(data_deal_main01, 'date_week_deal.xlsx', overwrite = TRUE)
将就看吧,这一篇只是代表着我还在,所以可能用处不大,这一段时间都很煎熬!
慢慢调整更新吧,都是基础的,也有点用!