/ / Jak zastosować kolor tła do komórki Excel w OpenTBS? - opentbs, tinybutstrong

Jak zastosować kolor tła do komórki Excel w OpenTBS? - opentbs, tinybutstrong

Nie mogę wymyślić, jak zastosować kolor tła do komórki w OpenTBS.

Próbowałem składni Worda, ale to nie zadziałało.

[row.cell.val][row.cell.bg;att=w:shd#w:fill]

Kod w PHP (uproszczony)

$rs = [
// ...
"cell" => [
"val" => 5,
"bg"  => "efefef",
],
// ...
];

$TBS->MergeBlock("row", $rs);

Zajrzałem do dokumentu XML z dokumentem programu Excel, ale nie mogłem zrozumieć, jakie znaczniki i atrybuty definiują kolor komórki.

Czy ktoś może mi pomóc?

Odpowiedzi:

1 dla odpowiedzi № 1

Trudno jest zmienić kolor tła komórki w skoroszycie XLSX za pomocą OpenTBS (lub innego narzędzia), ponieważ ta informacja jest przechowywana w definicji pojedynczego stylu w dodatkowym pliku podrzędnym xl/styles.xml i w skomplikowany sposób.

Kiedy modyfikujesz odpowiedni stylzmieni także kolor wszystkich innych komórek mających ten styl. W XLSX nie ma innej możliwości przechowywania koloru tła komórki. (to jest inny DOCX, w którym można przechowywać informacje we właściwości komórki).

Tak więc moja sugestia polega na użyciu formatowania warunkowego Excel do tego celu.


0 dla odpowiedzi nr 2

Kolor tła komórki języka XML programu Excel jest przechowywany w stylu komórki, w pliku <Styles> sekcja i przekazywane przez każdą komórkę ss:StyleID.

Przykład:

<!-- "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>

Jeśli masz ustaloną listę kolorów tła, możesz ręcznie wprowadzić je wszystkie <Styles>, mapuj kolor do stylu id w php i łącz identyfikator stylu z każdą komórką.

Jeśli nie masz ustalonej listy kolorów lub formatowanie arkusza kalkulacyjnego jest skomplikowane, możesz najpierw utworzyć i scalić listę stylów.