R XLConnect - 根据列颜色过滤列

时间:2017-08-24 20:56:18

标签: r excel xlconnect

XLconnect包(或R中的任何其他包)中,是否可以阅读Excel中包含颜色的headers表格,并在R中对其进行过滤{1}}基于这些颜色?

例如,column headers A, C & E填充绿色,在R中读取后,是否可以根据该颜色过滤它们?

由于

1 个答案:

答案 0 :(得分:1)

是的,我相信它是: 阅读R,使用xlsx包并解压缩:

library(xlsx)
wb     <- loadWorkbook("test.xlsx")
sheet1 <- getSheets(wb)[[1]]

获取行和单元格:

# get all rows
rows  <- getRows(sheet1)
cells <- getCells(rows)
# quick look at the values
sapply(cells, getCellValue)
#  1.1  2.1  3.1  4.1  5.1  6.1  7.1  8.1  9.1 10.1 11.1 
#  "x"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" "10" 

现在颜色信息在哪里?它位于cell style

styles <- sapply(cells, getCellStyle)

现在是一个为您提供单元格RGB值的函数:

注意:以下行为单元格提供背景颜色style$getFillForegroundXSSFColor()

cellColor <- function(style) {
    fg  <- style$getFillForegroundXSSFColor()
    rgb <- tryCatch(fg$getRgb(), error = function(e) NULL)
    rgb <- paste(rgb, collapse = "")
    return(rgb)
}

想了解更多信息?去here