使用R读取excel-colorinfo

Ben*_*ens 5 excel r

有什么办法可以从带有R的excelfile文件中读取单元格的colorindex?我可以使用XLConnect或XLSX这样的程序包设置单元格颜色,但我找不到从现有工作簿中提取颜色信息的方法。

谢谢你的帮助,本

M--*_*M-- 6

R-Blogger提供了可以为您完成工作的功能。我将答案包括在这里,以供将来参考。

使用xlsx包读取excel文件:

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

# get all rows
rows  <- getRows(sheet1)
cells <- getCells(rows)
Run Code Online (Sandbox Code Playgroud)

此部分提取信息,以后将用于获取单元格的背景色(或其他样式信息):

styles <- sapply(cells, getCellStyle) #This will get the styles
Run Code Online (Sandbox Code Playgroud)

这是function识别/提取单元格背景色的:

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

error 将处理没有背景色的单元格。

使用sapply可以获取所有单元格的背景色:

sapply(styles, cellColor)
Run Code Online (Sandbox Code Playgroud)

您还可以通过了解RGb代码对它们进行分类/识别:

mycolor <- list(green = "00ff00", red = "ff0000")
m     <- match(sapply(styles, cellColor), mycolor)
labs  <-names(mycolor)[m]
Run Code Online (Sandbox Code Playgroud)

您可以阅读更多内容,并在R-bloggers中了解如何应用它

您可以从RapidTables.com获取RGB代码