2

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

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

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

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

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

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

1 ответ1

1

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .