如何将背景颜色应用于 OpenTBS 中的 Excel 单元格?
How to apply background color to the Excel cell in 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);
我查看了 excel 文档的 XML 正文,但无法理解哪些标签和属性定义了单元格的颜色。
谁能帮帮我?
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 中的样式 ID,并将样式 ID 合并到每个单元格。
如果您没有固定的颜色列表,或者如果电子表格的格式很复杂,您可能需要先创建并合并样式列表。
使用 OpenTBS(或其他工具)更改 XLSX 工作簿中单元格的背景颜色非常困难,因为此信息存储在额外的单个样式定义中 sub-file xl/styles.xml
并且以一种复杂的方式。
所以当修改相应的样式时,您也会更改具有该样式的所有其他单元格的颜色。在 XLSX 中没有其他方法可以存储单元格的背景颜色。 (这与 DOCX 不同,您可以在单元格 属性 中存储信息)。
所以我的建议是为此目的使用 Excel 条件格式。
我不知道如何将背景颜色应用到 OpenTBS 中的单元格。
我试过 Word 的语法,但没有用。
[row.cell.val][row.cell.bg;att=w:shd#w:fill]
PHP 中的代码(已简化)
$rs = [
// ...
'cell' => [
'val' => 5,
'bg' => 'efefef',
],
// ...
];
$TBS->MergeBlock('row', $rs);
我查看了 excel 文档的 XML 正文,但无法理解哪些标签和属性定义了单元格的颜色。
谁能帮帮我?
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 中的样式 ID,并将样式 ID 合并到每个单元格。
如果您没有固定的颜色列表,或者如果电子表格的格式很复杂,您可能需要先创建并合并样式列表。
使用 OpenTBS(或其他工具)更改 XLSX 工作簿中单元格的背景颜色非常困难,因为此信息存储在额外的单个样式定义中 sub-file xl/styles.xml
并且以一种复杂的方式。
所以当修改相应的样式时,您也会更改具有该样式的所有其他单元格的颜色。在 XLSX 中没有其他方法可以存储单元格的背景颜色。 (这与 DOCX 不同,您可以在单元格 属性 中存储信息)。
所以我的建议是为此目的使用 Excel 条件格式。