Excel Interop コードを Spreadsheet 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で、定義された名前(範囲の新しい指定、またはSpreadsheet Lightの説明)を次のように作成しています:
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;