首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用R读出excel-彩色信息

用R读出excel-彩色信息
EN

Stack Overflow用户
提问于 2017-03-23 16:54:05
回答 2查看 7K关注 0票数 16

有没有办法用R从excel文件中读出单元格的颜色索引?

虽然我可以使用像XLConnectXLSX这样的包来设置颜色,但我还没有找到从现有工作簿中提取颜色信息的方法。

EN

Stack Overflow用户

回答已采纳

发布于 2017-04-22 19:52:57

R-Bloggers提供了一个功能,可以为您完成这项工作。我在此列出答案,供日后参考。

使用xlsx包读取excel文件:

代码语言:javascript
运行
复制
library(xlsx)
wb     <- loadWorkbook("test.xlsx")
sheet1 <- getSheets(wb)[[1]]

# get all rows
rows  <- getRows(sheet1)
cells <- getCells(rows)

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

代码语言:javascript
运行
复制
styles <- sapply(cells, getCellStyle) #This will get the styles

function --识别/提取单元格背景色:

代码语言:javascript
运行
复制
cellColor <- function(style) 
   {
    fg  <- style$getFillForegroundXSSFColor()
    rgb <- tryCatch(fg$getRgb(), error = function(e) NULL)
    rgb <- paste(rgb, collapse = "")
    return(rgb)
   }

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

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

代码语言:javascript
运行
复制
sapply(styles, cellColor)

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

代码语言:javascript
运行
复制
mycolor <- list(green = "00ff00", red = "ff0000")
m     <- match(sapply(styles, cellColor), mycolor)
labs  <-names(mycolor)[m]

您可以阅读更多内容,并学习如何在R-博客上应用它。

您可以从RapidTables.com获得RGB代码。

票数 21
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42982344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档