4

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

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

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

但这些代码返回错误的颜色。getStartColor()总是返回FFFFFFFFand而不是红色FF000000getEndColor()

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

4

2 回答 2

6

setReadDataOnly(TRUE) 表示仅读取单元格中的数据,但不读取任何样式...并且由于背景颜色是样式的一部分,因此阅读器在加载文件时将忽略背景颜色...如果填充样式不是加载,然后调用 $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill() 将返回默认填充样式和颜色。

使用 setReadDataOnly(FALSE) 加载文件,您应该会发现它有效

编辑

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

于 2012-08-24T17:42:03.293 回答
0

你的第二个代码:

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

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

RGB = 红色 蓝色 绿色 = xx xx xx

FF0000 实际上是红色的。

于 2012-08-24T17:26:51.323 回答