業務でExcelCreatorを使うことになったのですが、調べても参考になる記事が少ない!
ということで、予習として随時まとめていきます。
ExcelCreatorって何?
Excel ファイル(xlsx/xls 形式)を効率よくプログラム上で生成できる「Excel ファイル生成ツール」です。 Excel を使用せず、独自技術によりファイルを高速に生成します。
さまざまなサーバーやクラウド環境で Excel / PDF / HTML ファイルをダイレクトに生成するアプリケーションを構築できます。
※Advance Software株式会社の公式サイトから引用
環境
・Microsoft Visual Studio 2019
・ExcelCreator 11.0 for .NET 体験版
Excelファイル作成(新規)
・インスタンスの作成&Excelファイル作成:
新しいExcelファイルを作成する際、まずXlsxCreatorのインスタンスを作成します。その後、CreateBook
メソッドを使用して新しいExcelファイルを生成します。
XlsxCreator Xlsx = new XlsxCreator();
Xlsx.CreateBook(fileName, 1, AdvanceSoftware.ExcelCreator.xlsxVersion.ver2010); //1は、シートの数
Excelファイル作成(オーバーレイ/上書き)
・テンプレート(既存のファイル)に値を追加して新しいファイルを作成:
Xlsx.OpenBook(fileName, templateName);
Excelファイルを閉じる
// Excelファイルを保存して閉じる(引数は保存モード、PDFストリーム、ファイル削除フラグ)
bool closeMode = true; // Excelファイルを閉じる
Stream pdfStream = null; // PDFの出力ストリーム
bool isDeleteFile = false; // ファイルを削除しない
Xlsx.CloseBook(closeMode, pdfStream, isDeleteFile);
シートの設定
・シートの名前:
// シートの名前を設定
Xlsx.SheetName = "Sheet1";
・新しいシートを追加:
AddSheet
メソッドを使用して新しいシートを追加します。ここでの引数1は、新しいシートをワークブックの最初の位置に追加することを意味します。
int sheetCount = 1; // 追加するシートの数
int insertPosition = 0; // 挿入位置(0から始まるインデックス)
Xlsx.AddSheet(sheetCount, insertPosition);
・シートを削除:
int sheetNo = 0; // 削除するシートのインデックス
int deleteCount = 1; // 削除するシートの数
Xlsx.DeleteSheet(sheetNo, deleteCount);
罫線の設定
・Excelファイル内で罫線を設定する方法:
1. 実線(黒)
上下左右の境界に黒色の実線を設定します。
Xlsx.Cell("B3").Attr.LineLeft(AdvanceSoftware.ExcelCreator.BorderStyle.Thin, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("B3").Attr.LineTop(AdvanceSoftware.ExcelCreator.BorderStyle.Thin, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("B3").Attr.LineRight(AdvanceSoftware.ExcelCreator.BorderStyle.Thin, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("B3").Attr.LineBottom(AdvanceSoftware.ExcelCreator.BorderStyle.Thin, AdvanceSoftware.ExcelCreator.xlColor.Black);
2. 太線(黒)
より太い黒色の罫線を上下左右に設定します。
Xlsx.Cell("D3").Attr.LineLeft(AdvanceSoftware.ExcelCreator.BorderStyle.Medium, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("D3").Attr.LineTop(AdvanceSoftware.ExcelCreator.BorderStyle.Medium, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("D3").Attr.LineRight(AdvanceSoftware.ExcelCreator.BorderStyle.Medium, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("D3").Attr.LineBottom(AdvanceSoftware.ExcelCreator.BorderStyle.Medium, AdvanceSoftware.ExcelCreator.xlColor.Black);
3. 破線(黒)
黒色の破線をセルの境界に設定します。
Xlsx.Cell("F3").Attr.LineLeft(AdvanceSoftware.ExcelCreator.BorderStyle.Dashed, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("F3").Attr.LineTop(AdvanceSoftware.ExcelCreator.BorderStyle.Dashed, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("F3").Attr.LineRight(AdvanceSoftware.ExcelCreator.BorderStyle.Dashed, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("F3").Attr.LineBottom(AdvanceSoftware.ExcelCreator.BorderStyle.Dashed, AdvanceSoftware.ExcelCreator.xlColor.Black);
4. 点線(黒)
黒色の点線をセルの境界に設定します。
Xlsx.Cell("B5").Attr.LineLeft(AdvanceSoftware.ExcelCreator.BorderStyle.Dotted, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("B5").Attr.LineTop(AdvanceSoftware.ExcelCreator.BorderStyle.Dotted, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("B5").Attr.LineRight(AdvanceSoftware.ExcelCreator.BorderStyle.Dotted, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("B5").Attr.LineBottom(AdvanceSoftware.ExcelCreator.BorderStyle.Dotted, AdvanceSoftware.ExcelCreator.xlColor.Black);
5. 二重線(黒)
黒色の二重線をセルの境界に設定します。
Xlsx.Cell("F5").Attr.LineLeft(AdvanceSoftware.ExcelCreator.BorderStyle.Double, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("F5").Attr.LineTop(AdvanceSoftware.ExcelCreator.BorderStyle.Double, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("F5").Attr.LineRight(AdvanceSoftware.ExcelCreator.BorderStyle.Double, AdvanceSoftware.ExcelCreator.xlColor.Black);
Xlsx.Cell("F5").Attr.LineBottom(AdvanceSoftware.ExcelCreator.BorderStyle.Double, AdvanceSoftware.ExcelCreator.xlColor.Black);
背景色の設定
・背景パターン:
// 色(System.Drawing.Color 構造体)を設定
Xlsx.Cell("B7").Attr.BackColor = Color.Gray; // 灰色
Xlsx.Cell("F3").Attr.Pattern = AdvanceSoftware.ExcelCreator.Pattern.DarkGray; // 75%灰色
Xlsx.Cell("D3").Attr.Pattern = AdvanceSoftware.ExcelCreator.Pattern.MediumGray; // 50%灰色
Xlsx.Cell("H3").Attr.Pattern = AdvanceSoftware.ExcelCreator.Pattern.LightGray; // 25%灰色
Xlsx.Cell("J7").Attr.Pattern = AdvanceSoftware.ExcelCreator.Pattern.Gray125; // 12.5%灰色
Xlsx.Cell("L7").Attr.Pattern = AdvanceSoftware.ExcelCreator.Pattern.Gray0625; // 6.25%灰色
日付の設定と取得
// 現在時刻のシリアル値を取得し、複数セルに設定
DateTime today = DateTime.Now;
double doubleDate = today.ToOADate();
// さまざまな日付フォーマットで日付を設定
Xlsx.Cell("A2:A15").Double = doubleDate;
Xlsx.Cell("A2").Attr.Format = "[$-409]yyyy/m/d h:mm AM/PM;@";
Xlsx.Cell("A3").Attr.Format = "yyyy\"年\"m\"月\"d\"日\";@";
Xlsx.Cell("A4").Attr.Format = "yyyy\"年\"m\"月\";@";
// 他の日付フォーマットも同様に設定可能
セルの値の設定と取得
// 整数、浮動小数点数、文字列の値を設定
Xlsx.Cell("B2").Long = 1234567890; // 整数
Xlsx.Cell("B4").Double = 123.456D; // 浮動小数点数
Xlsx.Cell("B5").Str = "Str プロパティで文字列設定"; // 文字列
// セルから値を取得
int num = Xlsx.Cell("B2").Long;
string str = Xlsx.Cell("B5").Str;
セルの操作とクリア
// セルのコピー・貼り付け
Xlsx.Cell("B2:D9").Copy(); // セル範囲をコピー
Xlsx.Cell("B11").Paste(); // 先頭セルを指定して貼り付け
// セルのクリア
Xlsx.Cell("B3").Clear(); // 値と書式をクリア
Xlsx.Cell("C3").Clear(CellClearMode.Attr); // 書式のみをクリア
Xlsx.Cell("D3").Clear(CellClearMode.Value); // 値のみをクリア
行の操作
・行の挿入 (RowInsert):
Xlsx.RowInsert(2, 4); // 3 行目に 4 行挿入 (第 2 引数省略時は 1 行のみ挿入)
・行のクリア (RowClear):
Xlsx.RowClear(2, 1); // 3 行目を 1 行クリア (第 2 引数省略時は 1 行のみクリア)
・行の削除 (RowDelete):
Xlsx.RowDelete(2, 1); // 3 行目から 1 行削除 (第 2 引数省略時は 1 行のみ削除)
・行のコピー・貼り付け (RowCopy, RowPaste):
Xlsx.RowCopy(2); // 3 行目をコピー
Xlsx.RowPaste(4); // 5 行目に貼り付け
//Xlsx.RowCopy(2, 4); // RowPaste メソッド省略 (上記と同じ結果)
・コピーした行の挿入 (RowInsertCopied):
Xlsx.RowCopy(2); // 3 行目をコピー
Xlsx.RowInsertCopied(3); // 4 行目に挿入
//Xlsx.RowInsertCopied(2, 3); // RowCopy メソッド省略 (上記と同じ)
列の操作
・列の挿入 (ColumnInsert):
Xlsx.ColumnInsert(2, 4); // 3 列目に 4 列挿入 (第 2 引数省略時は 1 列のみ挿入)
・列のクリア (ColumnDelete):
Xlsx.ColumnClear(2, 1); // 3 列目から 1 列削除 (第 2 引数省略時は 1 列のみ削除)
・列の削除 (ColumnDelete):
Xlsx.ColumnDelete(2, 1); // 3 列目から 1 列削除 (第 2 引数省略時は 1 列のみ削除)
・列のコピー・貼り付け (ColumnCopy, ColumnPaste):
Xlsx.ColumnCopy(2); // 3 列目をコピー
Xlsx.ColumnPaste(4); // 5 列目に貼り付け
//Xlsx.ColumnCopy(2, 4); // ColumnPaste メソッド省略 (上記と同じ)
・コピーした列の挿入 (ColumnInsertCopied):
Xlsx.ColumnCopy(2); // 3 列目をコピー
Xlsx.ColumnInsertCopied(3); // 4 列目に挿入
//Xlsx.ColumnInsertCopied(2, 3); // ColumnCopy メソッド省略 (上記と同じ)
セル範囲をマージ
string range = "A1:B2"; // マージするセル範囲(例: A1からB2まで)
Xlsx.MergeCells(range);
ヘッダーとフッターの設定
string leftHeader = "Left Header";
string centerHeader = "Center Header";
string rightHeader = "Right Header";
Xlsx.Header(leftHeader, centerHeader, rightHeader);
string leftFooter = "Left Footer";
string centerFooter = "Center Footer";
string rightFooter = "Right Footer";
Xlsx.Footer(leftFooter, centerFooter, rightFooter);
フォントの設定
string cellAddress = "A1"; // セルのアドレス
Cell cell = Xlsx.Cell(cellAddress);
// フォントサイズを設定
cell.Attr.FontSize = 14;
// フォントカラーを設定
cell.Attr.FontColor = Color.Blue;