4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

開志専門職大学情報学部Advent Calendar 2023

Day 6

【C#】ExcelCreatorでできること: 基本機能のコード例

Last updated at Posted at 2023-11-29

業務で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;
4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?