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