我正在尝试将 Excel 互操作代码转换为电子表格 Light。我要模拟的遗留互操作代码是:
var columnHeaderRowRange = _xlSheetFillRateByDistributorByCustomer.Range[
_xlSheetFillRateByDistributorByCustomer.Cells[1, 1],
_xlSheetFillRateByDistributorByCustomer.Cells[1, 16]];
columnHeaderRowRange.Interior.Color = Color.LightBlue;
columnHeaderRowRange.RowHeight = 12;
columnHeaderRowRange.Font.Bold = true;
columnHeaderRowRange.Font.Size = 11;
我正在像这样在 Spreadsheet Light-ese 中创建一个定义的名称(新名称或电子表格 Light 的描述范围):
SLDocument sl;
. . .
sl.SetDefinedName("columnHeaderRowRange", "Sheet1!$A$1:$P$4");
我想我可以为范围设置行高,如下所示:
sl.SetRowHeight("columnHeaderRowRange", 12);
...但这不起作用;第一个 arg 必须是 int(行索引)。
所以我想也许我可以将它添加到一个样式中,然后我可以将其应用于定义的名称:
SLStyle headerStyle = sl.CreateStyle();
..然后将该样式应用于定义的名称,如下所示:
sl.SetCellStyle("columnHeaderRowRange", headerStyle); // Remember Merle Haggard!
...但我在 SLStyle 中也没有看到允许我这样做的属性。
如何控制定义名称中所有行的高度?
我认为除了我的风格之外,我还转换了 Excel 互操作范围中的所有内容:
headerStyle.Fill.SetPattern(DocumentFormat.OpenXml.
Spreadsheet.PatternValues.Solid, Color.Black, Color.LightBlue);
headerStyle.Font.Bold = true;
headerStyle.Font.FontSize = 12;