在PhpExcel中获取单元格背景颜色


Get the cell background color in PhpExcel

我在项目中使用Excel5。我已经尝试了以下代码:

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->getARGB();

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getEndColor()->getARGB();

但是这些代码返回错误的颜色。getStartColor()总是为getEndColor()返回FFFFFFFFFF000000,而不是红色。

我不知道少了什么。有人能帮我弄清楚吗?

setReadDataOnly(TRUE)表示只从单元格中读取数据,但不读取任何样式。。。由于背景颜色是样式的一部分,读者在加载文件时会忽略背景颜色。。。如果没有加载填充样式,那么对$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()的调用将返回默认的填充样式和颜色。

用setReadDataOnly(FALSE)加载文件,你应该会发现它可以

编辑

这远远超出了PHPExcel的范围。。。。所有内容都是通过DDE填充的,包括大部分样式,因此基本填充颜色是普通的(由PHPExcel getFill color调用返回),直到外部可执行程序TOS.exe填充数据并相应地设置样式。您唯一的选择是使用COM,以便在MS Excel中执行工作簿。

您的第二个代码:

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getEndColor()->getARGB();

有效,它只返回一个彩色十六进制代码(FF0000)。

RGB=红蓝绿=xx xx

FF0000实际上是红色的。