以下内容是对xlsx包的说明文档的整理:xlsx包说明文档
除了 R -> xlsx包(1)中的关于七种对象(workbook,sheet,row,cell,cellstyle,cellcomment,cellblock)的操作函数外,xlsx包还提供了一些别的函数:
- 读取(read)和写入(write)相关的函数
- 其它的对excel进行操作的函数
读取(read)和写入(write)相关的函数
read和write都没有对excel进行操作,而是提供了excel和R的data.frame之间的相互转换。
read相关的函数
read.xlsx(file, sheetIndex, sheetName = NULL, rowIndex = NULL,
startRow = NULL, endRow = NULL, colIndex = NULL,
as.data.frame = TRUE, header = TRUE, colClasses = NA,
keepFormulas = FALSE, encoding = "unknown", password = NULL, ...)
read.xlsx2(file, sheetIndex, sheetName = NULL, startRow = 1, colIndex = NULL,
endRow = NULL, as.data.frame = TRUE, header = TRUE,
colClasses = "character", password = NULL, ...)
readColumns(sheet, startColumn, endColumn, startRow, endRow = NULL,
as.data.frame = TRUE, header = TRUE, colClasses = NA, ...)
readRows(sheet, startRow, endRow, startColumn, endColumn = NULL)
说明:
- 前两个函数将excel读入转换成dataframe,后两个函数读入sheet中的行或列转换成datframe
- readRows返回的是一个矩阵,这个函数感觉完全能被readColumns取代,不明白存在的意义是什么
- colClasses:为NA时会根据第一行的数据猜测每列数据的类,也可以自己设定,可选值有"numeric","character","Date","POSIXct"
write相关的函数
write.xlsx(x, file, sheetName = "Sheet1", col.names = TRUE, row.names = TRUE,
append = FALSE, showNA = TRUE, password = NULL)
write.xlsx2(x, file, sheetName = "Sheet1", col.names = TRUE, row.names = TRUE,
append = FALSE, password = NULL, ...)
说明:
- append:在已有的文件上进行写入,T or F
其他对excel进行操作的函数
addDataFrame
将dataframe插入sheet中
addDataFrame(x, sheet, col.names = TRUE, row.names = TRUE, startRow = 1,
startColumn = 1, colStyle = NULL, colnamesStyle = NULL,
rownamesStyle = NULL, showNA = FALSE, characterNA = "",
byrow = FALSE)
说明:
- x:dataframe
- row.names/col.names:x的行名和列名一起写入sheet,T or F
- byrow:将x插入sheet 'in row wise fashion',不懂什么意思
addHyperlink
插入超链接
addHyperlink(cell, address, linkType = c("URL", "DOCUMENT", "EMAIL", "FILE"),
hyperlinkStyle = NULL)
说明:
- 该函数将cell中的value超链接到address
- hyperlinkStyle是NULL时,默认是加上蓝色下划线
addPicture
插入图片
addPicture(file, sheet, scale = 1, startRow = 1, startColumn = 1)
ForceRefresh
forcePivotTableRefresh(file, output = NULL, verbose = FALSE) ## 更新数据透视表
forceFormulaRefresh(file, output = NULL, verbose = FALSE) ## 更新公式
说明:
- output:更新后的文件路径,如果是NULL,就将原文件覆盖
- verbose:展示细节,T or F
addAutoFilter
插入筛选,就是那个小倒三角一点有下拉菜单的东西
addAutoFilter(sheet, cellRange)
说明:
- cellRange:不管是以下三种中的哪一种,都会在选中的cellblock的第一行插入筛选
"1:5" 第1到5行的cellblock
"A:C" 第1到3列的cellblock
"A1:C5" 一个从A1选中到C5的cellblock
MergeRegion
单元格合并与拆分
addMergedRegion(sheet, startRow, endRow, startColumn, endColumn) ## 合并单元格
removeMergedRegion(sheet, ind) ## 拆分单元格
说明:
- 文档说明写的是addMergedRegion会返回一个值,用这个值作为ind就可以拆分单元格了,但是貌似办不到
autoSizeColumn
自动调整列宽到合适的值(就是excel中双击列的右边达到的效果)
autoSizeColumnlumn(sheet, colIndex)
createFreezePane
冻结窗格
createFreezePane(sheet, rowSplit, colSplit, startRow = NULL, startColumn = NULL)
说明:
- 该函数的作用类似于选中第rowSplit行第colSplit列的单元格后冻结窗格,同时冻结后的界面的右下角第一个单元格为第startRow行第startColumn列
createSplitPane
拆分
createSplitPane(sheet, xSplitPos = 2000, ySplitPos = 2000, startRow = 1,
startColumn = 1, position = "PANE_LOWER_LEFT")
setColumnWidth
设定列宽
setColumnWidth(sheet, colIndex, colWidth)
setZoom
缩放(就是excel的右下角那个百分比缩放)
setZoom(sheet, numerator = 100, denominator = 100)
说明:
- 缩放比例为 numerator/denominator