我有一个脚本,可以以编程方式生成 Excel 电子表格 - 清理其他组织提供给我们的丑陋报告。出于兴趣;我使用 PHPExcel 来生成“干净”的报告。
我们每周都会收到这些报告,这些报告针对的是每几个月举办一次的活动。报告包含出席者列表以及群组 ID,让我们知道一些出席者属于同一组。
为了帮助活动组织者,我获取了活动 ID 并生成了一个唯一的颜色代码(基于活动 ID 的哈希值 - 截断为 6 个字符)。此唯一颜色代码被设置为每行单元格的背景颜色。这有助于组织者快速直观地识别群组成员。
问题是,当组织者将周报告中的行复制到主报告(其中包含所有与会者,而不仅仅是本周报名的与会者)时 - 所有颜色代码都会与主模板的调色板对齐。
非常感谢您的宝贵时间
祝一切顺利,Iain
答案1
我认为问题在于 Excel 并不真正支持对象的精确 RGB 颜色值(至少在 2003 中不支持,我也在使用)。
即使我使用 Excel VBA 将单元格的背景设置为特定的 RGB 值,它也会捕捉到最近的调色板条目。
因此看起来虽然您已经使用 PHPExcel 解决了这个问题(不熟悉,但假设它是从头开始创建 XLS 文件),但只要您复制到另一张工作表,您就只能使用正常的 Excel 行为。
此 MS 知识库条目描述了 Excel 2000 中的问题,并建议使用 VBA 中的 ShapeRange 对象来解决。如果您无法在 PHPExcel 中解决此对象,也许您可以使用 VBA 来处理文件?