R -> xlsx包(2)

作者: 煮豆燃逗比 | 来源:发表于2019-04-08 23:43 被阅读2次

以下内容是对xlsx包的说明文档的整理:xlsx包说明文档

除了 R -> xlsx包(1)中的关于七种对象(workbook,sheet,row,cell,cellstyle,cellcomment,cellblock)的操作函数外,xlsx包还提供了一些别的函数:

  1. 读取(read)和写入(write)相关的函数
  2. 其它的对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

以上内容大致为xlsx包说明文档的整理,有一些操作通过xlsx包似乎无法实现,例如:删除行同时让被删除行下方的数据自动上移,删除列同理等。这个似乎需要在了解Apache POI的基础上自己编写R函数实现。

关于通过R操作excel的包除了xlsx之外还有XLConnect包openxlsx包,有时间再做整理。

相关文章

  • R -> xlsx包(2)

    以下内容是对xlsx包的说明文档的整理:xlsx包说明文档 除了 R -> xlsx包(1)中的关于七种对象(wo...

  • R -> xlsx包(1)

    以下内容是对xlsx包的说明文档的整理:xlsx包说明文档 该包通过操作以下七种对象来对excel进行操作 wor...

  • 多个工作表汇总

    一、R语言操作 library(xlsx) '载入xlsx包 data1<-data.frame()...

  • windows与ubuntu下R安装xlsx包经验谈

    windows与ubuntu下R安装xlsx包经验谈 xlsx包的安装需要依赖rJava包,而rJava包需要ja...

  • R语言扩展包xlsx() (01)

    xlsx()包,是一个可以让R读、写、格式化xlsx文件的扩展包。 为什么不用相对有更多教程的RODBC包? 最重...

  • R语言扩展包xlsx() (02)修改单元格底色

    xlsx()包,是可以让R读、写、格式化xlsx文件的扩展包(接上篇)。 3.修改单元格底色。 先给出代码: 代码...

  • R语言扩展包xlsx() (03)其他注意点

    4.xlsx()包的其他注意点 4.1 xlsx()包很容易内存溢出报错,用read.xlsx2()多次读取同一张...

  • R无法导入xlsx包

    想通过xlsx包中的函数去读取excel表格,分批安装需要的包: 但是发现想读包的时候,一直报错。根据网上很多教程...

  • 读取excel文件

    1.导出csv文件2.RODBC包的odbcConnectExcel2007函数3.xlsx包read.xlsx4...

  • Rstudio下安装xlsx rjava

    安装r包---xlsx 1.首先需要安装rjava安装rjava包时报错如下: 解决此问题主要是java路径不对,...

网友评论

    本文标题:R -> xlsx包(2)

    本文链接:https://www.haomeiwen.com/subject/wpfqiqtx.html