writexl包功能比较简单,仅有输出 Excel 功能。
优势:快速,不依赖java和Excel ,并且输出文件相比openxlsx包较小。
注意:writexl
包不会保存行名。
一、用法
write_xlsx(
x,
path = tempfile(fileext = ".xlsx"),
col_names = TRUE,
format_headers = TRUE,
use_zip64 = FALSE
)
参数含义
x
:要保存为xlsx的变量,“数据框”或者是“由数据框组成的列表”。个人偏好使用列表的方式,因为这样可以设置工作表表名。
path
:输出的xlsx文件名。
col_names
:是否保存列名,默认是TRUE
,即保存列名。
format_headers
:设置列名居中并加粗。
use_zip64
:是否使用zip64格式的压缩。默认不使用zip64格式进行压缩,zip64可以支持更大的文件大小(超过4GB)。但是不是所有平台可以读入这种文件。
二、示例
0. 加载R包
library(writexl)
1. 把一个变量写入Excel表中
# test data: vari1.
vari <- data.frame(C1 = c(1, 2, 3),
C2 = c(4, 5, 6),
C3 = c(7, 8, 9),
row.names = c("R1", "R2", "R3"))
write_xlsx(list(sheet_name = vari), path = 'uni_vari.xlsx')
sheet_name
是设置工作表的表名。
2. 把多个变量写入同一个Excel表中
# test data: vari1 and vari2.
vari1 <- data.frame(C1 = c(1, 2, 3),
C2 = c(4, 5, 6),
C3 = c(7, 8, 9),
row.names = c("R1", "R2", "R3"))
vari2 <- data.frame(C1 = c(11, 12, 13),
C2 = c(14, 15, 16),
C3 = c(17, 18, 19),
row.names = c("R1", "R2", "R3"))
write_xlsx(list(sheet1_name = vari1, sheet2_name = vari2), path = 'multi_vari.xlsx')
sheet1_name
和sheet2_name
是设置工作表的表名。
补充:导入xlsx文件
library(readxl)
tmp <- read_xlsx("unique_vari.xlsx")
tmp1 <- read_xlsx("multi_vari.xlsx", sheet = 1)
tmp2 <- read_xlsx("multi_vari.xlsx", sheet = 2)
参数sheet
设置导入第几个工作表。
完整代码在GitHub
https://github.com/wPencil/MyNotes/blob/f9be048096308dd8d8b4cd60aba1c8c7467a5277/writexl.R