我正在尝试使用基于自定义SpreadsheetDocument
的{{1}}创建Table
:
TableStyleInfo
我的stylesheet.DifferentialFormats = new DifferentialFormats
(
new DifferentialFormat // 0 - TableStyleValues.WholeTable
{
Font = new Font { FontName = new FontName { Val = "Tahoma" } },
Fill = new Fill { PatternFill = new PatternFill { PatternType = PatternValues.None } }
Alignment = new Alignment { Horizontal = HorizontalAlignmentValues.General }
},
new DifferentialFormat // 1 - TableStyleValues.HeaderRow
{
Fill = new Fill
{
PatternFill = new PatternFill
{
PatternType = PatternValues.Solid,
BackgroundColor = new BackgroundColor { Rgb = "FFF5F5F5" }
}
},
Alignment = new Alignment { Horizontal = HorizontalAlignmentValues.Center }
},
new DifferentialFormat // 2 - TableStyleValues.SecondRowStripe
{
Fill = new Fill
{
PatternFill = new PatternFill
{
PatternType = PatternValues.Solid,
BackgroundColor = new BackgroundColor { Rgb = "FFF5F5F5" }
}
}
},
new DifferentialFormat // 3 - Date
{
NumberingFormat = new NumberingFormat
{
NumberFormatId = 164,
FormatCode = "dd/mm/yyyy"
}
}
) { Count = 4 };
stylesheet.TableStyles = new TableStyles(new TableStyle
(
new TableStyleElement { Type = TableStyleValues.WholeTable, FormatId = 0 },
new TableStyleElement { Type = TableStyleValues.HeaderRow, FormatId = 1 },
new TableStyleElement { Type = TableStyleValues.SecondRowStripe, FormatId = 2 }
) { Name = "TableStyle", Table = true, Count = 3 });
tableDefPart.Table = new Table
{
HeaderRowCount = 1,
TableStyleInfo = new TableStyleInfo
{
Name = ((TableStyle)stylesheet.TableStyles.FirstChild).Name,
ShowRowStripes = true
},
TableColumns = new TableColumns
(
new TableColumn
{
Id = 1,
Name = "Name"
},
new TableColumn
{
Id = 2,
Name = "Date",
DataFormatId = 3 // no effect
}
) { Count = 2 };
};
集合包含4个项目,其中前3个是从相应的DifferentialFormats
条目引用的,而最后一个是从第二个TableStyleElement
定义引用的。后者似乎不起作用。如果我将样式应用于TableColumn
,那么格式化本身就是正确的。
任何人都可以解释SecondRowStripe
应指向的内容以及我做错了什么。感谢。
P.S。将TableColumn.DataFormatId
设置为已命名的TableColumn.DataCellStyle
索引也不起作用,因此将自定义格式应用于CellStyle
似乎根本不受尊重。
字段描述:
DataFormatId
样式表中差异格式记录的基于零的整数索引,指示要应用于此列的数据区域的格式。此格式也适用于此列的插入行上的单元格。如果此索引超出范围,则无法加载电子表格。
DataCellStyle
一个字符串,表示应用于此表列的数据区域中的单元格的单元格样式的名称。如果缺少此字符串或与单元格样式的名称不对应,则应应用当前表样式指定的数据单元格样式。此单元格样式应优先于表格定义的dataCellStyle。