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

时间:2012-08-24 16:46:59

标签: php phpexcel

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

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

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

但这些代码返回错误的颜色。 getStartColor()始终为FFFFFFFF而不是红色FF000000返回getEndColor()和{{1}}。

我不知道遗失了什么。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:6)

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

使用setReadDataOnly(FALSE)加载文件,你会发现它可以正常工作

修改

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

答案 1 :(得分:1)

你的第二个代码:

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

Works,它只返回一个颜色十六进制代码(FF0000)。

RGB =红蓝绿= xx xx xx

FF0000实际上是RED。