以下內容是對xlsx包的說明文檔的整理:xlsx包說明文檔
除了 R -> xlsx包(1)中的關于七種對象(workbook,sheet,row,cell,cellstyle,cellcomment,cellblock)的操作函數外,xlsx包還提供了一些別的函數:
- 讀?。╮ead)和寫入(write)相關的函數
- 其它的對excel進行操作的函數
讀?。╮ead)和寫入(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:展示細節(jié),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