2017-08-12 49 views
0

我想从工作簿中使用xlsx包获取单元格的字符串值。使用getFillBackgroundColorColor()和getFillForegroundColorColor()方法,我找回Java对象乱码,如"Java-Object{[email protected]}"。 7ec7ffd3隐藏颜色的十六进制值吗?任何想法如何提取颜色名称?谢谢。如何获取单元格填充颜色

+0

颜色通常被定义为6张十六进制数。所以我不认为'7ec7ffd3'是你正在寻找的。 getCellStyle()给你什么? – Kevin

+0

'getCellStyle()'取回我无法解析的Java单元格样式Object:''Java-Object{[email protected]}“'。另外,'7ec7ffd3'是8位十六进制数字,不是6.让我觉得它只是一个指向Java对象的指针。 – Eric

回答

1

我认为这些数字只是一个对象标识符。你需要的是getRgb方法。

增加的步骤这是我在原来的答案步骤之前设置好了:

wb = loadWorkbook(file="Test.xlsx") 
SheetList = getSheets(wb) 
Rows = getRows(SheetList[[1]]) 
Cells = getCells(Rows) 

原来的答案

Style = getCellStyle(Cells[["2.1"]]) 
Style$getFillForegroundColorColor()$getRgb() 
[1] 00 b0 50 
as.character(Style$getFillForegroundColorColor()$getRgb()) 
[1] "00" "b0" "50" 
+0

您的解决方案对我产生此错误:$ getFillForegroundColorColor()中的错误$ getRGB: 没有字段,方法或称为'getRGB'的内部类 – Eric

+0

将以前的某些步骤添加到答案中。再次测试。仍在为我工作。在R版本3.4.1中使用'xlsx_0.5.7'和'xlsxjars_0.6.1'' – G5W

+0

getRGB之后是否包含()? – G5W

相关问题