Как применить цвет фона к ячейке Excel в OpenTBS?
Я не могу понять, как применить цвет фона к ячейке в OpenTBS.
Я пробовал синтаксис Word, но он не работал.
[row.cell.val][row.cell.bg;att=w:shd#w:fill]
Код на PHP (упрощенный)
$rs = [
// ...
'cell' => [
'val' => 5,
'bg' => 'efefef',
],
// ...
];
$TBS->MergeBlock('row', $rs);
Я заглянул внутрь тела XML документа Excel, но не смог понять, какие теги и атрибуты определяют цвет ячейки.
Может кто-нибудь мне помочь?
2 ответа
Довольно сложно изменить цвет фона ячейки в рабочей книге XLSX с помощью OpenTBS (или другого инструмента), поскольку эта информация хранится в единственном определении стиля в дополнительном подфайле. xl/styles.xml
и сложным образом.
Поэтому при изменении соответствующего стиля вы также измените цвет всех других ячеек, имеющих этот стиль. В XLSX нет другого способа сохранить цвет фона ячейки. (это отличается от DOCX, где вы можете хранить информацию в свойстве ячейки).
Поэтому я предлагаю использовать условное форматирование Excel для этой цели.
Цвет фона ячейки Excel XML хранится в стиле ячейки, в <Styles>
раздел и передается по каждой ячейке ss:StyleID
,
Пример:
<!-- "s62" is the style id" -->
<Style ss:ID="s62">
<!-- Interior = Background -->
<Interior ss:Color="#FFFF00" ss:Pattern="Solid"/>
</Style>
...
<!-- Using "s62" style which says yellow background -->
<Cell ss:StyleID="s62">
<Data ss:Type="String">foobar</Data>
</Cell>
Если у вас есть фиксированный список цвета фона, вы можете вручную поместить их все в <Styles>
, сопоставьте цвет с идентификатором стиля в php и объедините идентификатор стиля с каждой ячейкой.
Если у вас нет фиксированного списка цветов или форматирование электронной таблицы является сложным, вам, возможно, придется сначала создать и объединить список стилей.