用R读出excel-colorinfo

有没有什么办法从R的excelfiles中读出单元格的colorindex? 而我可以用像XLConnect或XLSX这样的软件包来设置单元格的颜色,我发现没有办法从现有的工作簿中提取颜色信息。

Ben,谢谢你的帮助

R-Bloggers提供了一个可以帮你完成工作的function。 我将这里的答案包括在内供将来参考。

使用xlsx包读取excel文件:

 library(xlsx) wb <- loadWorkbook("test.xlsx") sheet1 <- getSheets(wb)[[1]] # get all rows rows <- getRows(sheet1) cells <- getCells(rows) 

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

 styles <- sapply(cells, getCellStyle) #This will get the styles 

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

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

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

使用sapply你可以得到所有单元格的背景颜色:

 sapply(styles, cellColor) 

您也可以通过了解RGb编码对其进行分类/识别:

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

您可以阅读更多内容,并学习如何将其应用于R-bloggers

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