Я пытаюсь преобразовать код Excel Interop в Spreadsheet Light. Унаследованный код Interop, который я хочу эмулировать, выглядит следующим образом:
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 диапазона), например, в Spreadsheet Light-ese:
SLDocument sl;
. . .
sl.SetDefinedName("columnHeaderRowRange", "Sheet1!$A$1:$P$4");
Я думаю, что мог бы установить высоту строки для диапазона примерно так:
sl.SetRowHeight("columnHeaderRowRange", 12);
... но это не работает; первый аргумент должен быть int (индекс строки).
Поэтому я подумал, что, может быть, я мог бы добавить его к стилю, который затем можно было бы применить к определенному имени:
SLStyle headerStyle = sl.CreateStyle();
..и затем примените этот стиль к определенному имени следующим образом:
sl.SetCellStyle("columnHeaderRowRange", headerStyle); // Remember Merle Haggard!
... но я не вижу свойств в SLStyle, которые позволили бы мне это сделать.
Как я могу контролировать высоту всех строк в пределах определенного имени?
Я думаю, что у меня есть все из диапазона Excel Interop, кроме того, что в моем стиле:
headerStyle.Fill.SetPattern(DocumentFormat.OpenXml.
Spreadsheet.PatternValues.Solid, Color.Black, Color.LightBlue);
headerStyle.Font.Bold = true;
headerStyle.Font.FontSize = 12;