用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代码