Как сохранить цвета фона при вставке между документами в Excel

У меня есть скрипт, который программно генерирует таблицы Excel - убирая уродливые отчеты, полученные от другой организации. Ради интересов; Я использую PHPExcel для генерации "чистых" отчетов.

Мы получаем эти отчеты каждую неделю для события, которое происходит каждые пару месяцев. Отчеты содержат список участников вместе с идентификатором группы, который позволяет нам знать, что некоторые участники принадлежат друг другу.

Чтобы помочь организаторам мероприятия, я взял идентификатор события и сгенерировал уникальный цветовой код (на основе хэша идентификатора события - усеченный до 6 символов). Этот уникальный цветовой код устанавливается как цвет фона ячейки в каждой строке. Это помогает организаторам быстро визуально идентифицировать членов группы.

Проблема в том, что, когда организаторы копируют строки из отчета о неделях в основной отчет (который содержит всех участников, а не только тех, кто подписался на этой неделе), все цветовые коды привязываются к цветовой палитре основного шаблона.

Большое спасибо за уделенное время

Всего наилучшего

1 ответ

Я думаю, проблема в том, что точные значения цвета RGB для объектов на самом деле не поддерживаются в Excel (по крайней мере, не в 2003 году, который я также использую).

Даже если я использую Excel VBA, чтобы установить фон ячейки как конкретное значение RGB, он привязывается к ближайшей записи палитры.

Таким образом, похоже, что вы работали с PHPExcel (не знакомо, но предположим, что он создает файлы XLS с нуля), как только вы копируете на другой лист, вы ограничены нормальным поведением Excel.

Эта запись базы знаний MS описывает проблему в Excel 2000 и предлагает обходной путь с использованием объекта ShapeRange в VBA. Если вы не можете обратиться к этому объекту в PHPExcel, возможно, вы могли бы использовать VBA для последующей обработки файлов?

Другие вопросы по тегам