【C#×Excel】ClosedXMLの基本操作を徹底網羅!

当ページのリンクには広告が含まれています。

スポンサーリンク

ClosedXML操作を網羅的にまとめました

目次から知りたい情報へ飛んでください

公式ドキュメントは こちら のサイト(英語)で 確認できます

クリックしてジャンプ

準備(usingの記述)

ClosedXMLを使うために書かなければいけない おまじない があります。

using ClosedXML.Excel; // ClosedXMLを使うためのおまじない
using ClosedXML.Excel.Drawings; // ClosedXMLを使うためのおまじない

おまじない を書く場所は プログラムの頭です。

※ NuGet による ClosedXMLライブラリ が追加してあることが前提です。

ライブラリの追加については こちら の記事を参考にしてください。

ClosedXMLライブラリ を追加してない状態で おまじないを書いたらエラーになります。

スポンサーリンク

ブックを開く

※ 開くといっても エクセルが起動する訳ではありません。バックグラウンドで開いて(読み込んで)操作できるようにするよ!みたいなイメージです。

※ ブックを開くコードを書いても、保存するコードを書かなければ 保存 されることはありません。

using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx")) { 
 // ここに処理を書いていきます
}

スポンサーリンク

ブックを作成

※ ブックを作成といっても エクセルが起動する訳ではありません。バックグラウンドで作成して操作できるようにするよ!みたいなイメージです。

※ ブック作成のコードを書いても、保存するコードを書かなければパソコン上にブックが作成されることはありません。

using (var wb = new XLWorkbook()) { 
 // ここに処理を書いていきます
}

スポンサーリンク

上書き保存

wb.Save();の部分が上書き保存するコードです

using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx")) { 
 // ここに処理を書いていきます
 wb.Save(); // 上書き保存
}

スポンサーリンク

名前を付けて保存

wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); の部分が名前を付けて保存するコードです

既存ブックを開いて別名で保存

using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx")) { 
 // ここに処理を書いていきます
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); // 名前を付けて保存
}

新規ブックを作成して名前を付けて保存

using (var wb = new XLWorkbook()) { 
 // ここに処理を書いていきます
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); // 名前を付けて保存
}

スポンサーリンク

シートを追加

wb.Worksheets.Add("Sheet1"); の部分がシートを追加するコードです

using (var wb = new XLWorkbook()) { 

 //ワークシートの追加
 wb.Worksheets.Add("Sheet1");
 
 // 名前を付けて保存
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); 
}

スポンサーリンク

シートをアクティブ化

wb.Worksheet(setSheetName).SetTabActive(); の部分がシートを選択するコードです

注意点としてSetTabActive(); で シートをアクティブにした際、複数のシートが選択状態になる場合があります

事前にアクティブなシートを確認しておき、指定したシートをアクティブにした後に、元々アクティブだったシートの選択を解除することで、シートの2重選択を防止しています。

using (var wb = new XLWorkbook()) { 

 // アクティブにしたいシート名
 var setSheetName = "Sheet3";
 // 現在アクティブなシートを調べる
  var sheet = wb.Worksheets.First(_ => _.TabActive).Worksheet;

  if (sheet != wb.Worksheet(setSheetName)) {

    //指定したシート名のシートをActiveにする
   wb.Worksheet(setSheetName).SetTabActive();
                    
     sheet.TabSelected = false;
 }
 
 // 名前を付けて保存
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); 
}

スポンサーリンク

最終行の取得

lastRowには 行そのもの(オブジェクト)が入ります

lastRowNumberには 行番号が入ります

using (var wb = new XLWorkbook()) { 

 // データをいくつか追加します(例として)
 wb.Worksheet("sheet1").Cell("A1").Value = "データ1";
 wb.Worksheet("sheet1").Cell("A2").Value = "データ2";
 wb.Worksheet("sheet1").Cell("A3").Value = "データ3"; // この行が最終行になります。

 // 最終行を使用している行を取得します。
 var lastRow = worksheet.LastRowUsed();

 // 最終行の行番号を取得します。この場合、lastRowNumberには、3が入ります
 int lastRowNumber = lastRow.RowNumber();

 // 取得した最終行を利用したい場合のコードをここに記述します。
 // 例:最終行の次の行に値を設定する。
 wb.Worksheet("sheet1").Cell(lastRowNumber + 1, 1).Value = "次のデータ";
 
 // 名前を付けて保存
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); 
}

スポンサーリンク

最終列の取得

lastColumnには 列そのもの(オブジェクト)が入ります

lastColumnNumberには 列番号が入ります

using (var wb = new XLWorkbook()) { 

 // 例としてデータを追加します(例として)
 wb.Worksheet("sheet1").Cell("A1").Value = "データ1";
 wb.Worksheet("sheet1").Cell("B1").Value = "データ2";
 wb.Worksheet("sheet1").Cell("C1").Value = "データ3"; // この列が最終列になります。

 // 最終列を使用している列を取得します
 var lastColumn = worksheet.LastColumnUsed();

 // 最終列の列番号を取得します。この場合、lastColumnNumberには、3が入ります
 int lastColumnNumber = lastColumn.ColumnNumber();

 // 取得した最終列を利用したい場合のコードをここに記述します。
 // 例えば、最終列の次の列に値を設定する。
 wb.Worksheet("sheet1").Cell(1, lastColumnNumber + 1).Value = "次のデータ";

 
 // 名前を付けて保存
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); 
}

スポンサーリンク

行のコピー

指定されたワークシートの5行目を10行目にコピーします

CopyToメソッドはセルの値だけでなく、書式やスタイルもコピーします

既にコピー先の行にデータが存在する場合は、上書きされます

コピー元とコピー先が同じ行の場合は何も変わりません

using (var wb = new XLWorkbook()) { 

 // コピーしたい行番号を指定
 int sourceRowNumber = 5; // 例:5行目をコピーする
 // コピー先の行番号を指定
 int targetRowNumber = 10; // 例:10行目にコピーする

 // 行をコピーする
 var sourceRow = wb.Worksheet("sheet1").Row(sourceRowNumber);
 var targetRow = wb.Worksheet("sheet1").Row(targetRowNumber);

 // 行全体をコピー
 sourceRow.CopyTo(targetRow);

 // 名前を付けて保存
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); 
}

スポンサーリンク

行の挿入

下に行を挿入する

Row(1):1行目の

InsertRowsBelow(2):下に2行挿入

// 行の挿入(下に)
wb.Worksheet("sheet1").Row(1).InsertRowsBelow(2);

上に行を挿入する

Row(1):1行目の

InsertRowsAbove(2):上に2行挿入

// 行の挿入(上に)
wb.Worksheet("sheet1").Row(1).InsertRowsAbove(2);

スポンサーリンク

行を削除

Row(10):10行目を

Delete():削除

// 行の削除
wb.Worksheet("sheet1").Row(10).Delete(); 

スポンサーリンク

列のコピー

指定されたワークシートの3列目を6列目にコピーします

CopyToメソッドを使用して、セルの内容、書式、スタイルを含めてコピーします

既にコピー先の列にデータが存在する場合は、上書きされます

コピー元とコピー先が同じ行の場合は何も変わりません

using (var wb = new XLWorkbook()) { 

 // コピーしたい列の番号を指定
 int sourceColumnNumber = 3; // 例:3列目("C"列)をコピーする
 // コピー先の列の番号を指定
 int targetColumnNumber = 6; // 例:6列目("F"列)にコピーする

 // 列をコピーする
 var sourceColumn = wb.Worksheet("sheet1").Column(sourceColumnNumber);
 var targetColumn = wb.Worksheet("sheet1").Column(targetColumnNumber);

 // 列全体をコピー
 sourceColumn.CopyTo(targetColumn);

 // 名前を付けて保存
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); 
}

スポンサーリンク

列の挿入

前に列を挿入

Column(1) :1列目の

InsertColumnsBefore(2):前(左)に2列挿入

// 列の挿入(前に)
wb.Worksheet("sheet1").Column(1).InsertColumnsBefore(2);

後ろに列を挿入

Column(1) :1列目の

InsertColumnsAfter(2):後(右)に2列挿入

// 列の挿入(後に)
wb.Worksheet("sheet1").Column(1).InsertColumnsAfter(2);

スポンサーリンク

列を削除

Column(10) :10列目を

Delete():削除

// 列の削除
wb.Worksheet("sheet1").Column(10).Delete();

スポンサーリンク

ウィンドウ枠の固定

ウィンドウ枠の固定 を設定する方法です

上から2行目左から1列目 を固定表示するには↓のように書きます

セル番地 A1:B2 の範囲が固定されることになります

using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx"))
{
    // 例として、上から2行目までと左から1列目までを固定表示にします。
    // これは、3行目以降とB列以降がスクロールによって動くのに対して、
    // A1:B2 の範囲が固定されることを意味します
    wb.Worksheet("sheet1").SheetView.FreezeRows(2);
    wb.Worksheet("sheet1").SheetView.FreezeColumns(1);

    // ファイルに変更を上書き保存します。
    wb.Save();
}

実行するとこんな感じです

スポンサーリンク

ウィンドウ枠の固定

ウィンドウ枠の固定 を解除する方法です

上から0行目左から0列目 を固定表示、のような書き方で解除できます

using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx"))
{
    // ウィンドウ枠の固定を解除
    wb.Worksheet("sheet1").SheetView.FreezeRows(0);
    wb.Worksheet("sheet1").SheetView.FreezeColumns(0);

    // ファイルに変更を上書き保存します。
    wb.Save();
}

スポンサーリンク

セルに値を書込み

C5セル値「あいうえお」の書き込み(R1C1形式でセル指定)

// 値の書き込み(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5,3).Value = "あいうえお";

C5セル値「あいうえお」の書き込み(A1形式でセル指定)

// 値の書き込み(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Value = "あいうえお"; 

スポンサーリンク

セルに数式を書込み

C5セル数式「=1+1」の書き込み(R1C1形式でセル指定)

// 値の書き込み(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5,3).FormulaA1 = "=1+1";

C5セル数式「=1+1」の書き込み(A1形式でセル指定)

// 値の書き込み(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").FormulaA1 = "=1+1";

ClosedXML 数式関連プロパティ一覧表

スクロールできます
プロパティ名説明使用例
FormulaA1A1形式でセルに数式を設定するときに使用します。wb.Worksheet("sheet1").Cell("C5").FormulaA1 = "SUM(A1:A10)";
FormulaR1C1R1C1形式でセルに数式を設定するときに使用します。wb.Worksheet("sheet1").Cell("C5").FormulaR1C1 = "SUM(R1C1:R10C1)";
Formulaセルに数式を設定するときに使用しますが、A1形式が一般的です。wb.Worksheet("sheet1").Cell("C5").Formula = "=SUM(A1:A10)";
SetFormulaA1メソッドチェーン中でA1形式の数式をセルに設定するために使用します。wb.Worksheet("sheet1").Cell("C5").SetFormulaA1("SUM(A1:A10)");
SetFormulaR1C1メソッドチェーン中でR1C1形式の数式をセルに設定するために使用します。wb.Worksheet("sheet1").Cell("C5").SetFormulaR1C1("SUM(R1C1:R10C1)");

数式をセルに設定する際には、FormulaA1FormulaR1C1 プロパティを使用します

FormulaA1はExcelで一般的に使用されるA1参照スタイル(列はアルファベット、行は数字で表される)で数式を設定します

FormulaR1C1はR1C1参照スタイル(列と行が両方とも数字で表される)で数式を設定します

SetFormulaA1SetFormulaR1C1はメソッドチェーニングに適している点が特徴で、複数のスタイル設定を一行で行いたい場合に便利ですこれらのメソッドを使用すると、プロパティを設定する代わりにメソッドとして数式をセルに適用することができます。

例えば、以下のコードはcellの数式をメソッドチェーンで設定しています。

wb.Worksheet("sheet1").SetFormulaA1("SUM(A1:A10)").Style.Font.Bold = true;

このコードはセルに数式を設定し、そのセルのフォントを太字に設定しています

メソッドチェーニング

オブジェクトのメソッドを連続して呼び出すプログラミングのパターン。この技法は「流れるようなインターフェース」(fluent interface) とも呼ばれ、コードの可読性を向上させることができる。

メソッドチェーニングを実現するには、各メソッドが最後にそのオブジェクト自身 (this) を返すように実装されている必要があります。このために、メソッドはそのオブジェクトの型を返す必要があります。

スポンサーリンク

複数セルに書込み

E1~E100セル値「2」をセット

//E1~E100セルにまとめて値をセット
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Value = 2;

E1~E100セル数式「=1+1」をセット

値を文字列として読み出し

C5セル文字列として取得(R1C1形式でセル指定)

// 文字列として取得(R1C1形式でセル指定)
var C5_Value = wb.Worksheet("sheet1").Cell(5, 3).Value.ToString();

C5セル文字列として取得(A1形式でセル指定)

// 文字列として取得(A1形式でセル指定)
var C5_Value = wb.Worksheet("sheet1").Cell("C5").Value.ToString();

スポンサーリンク

セルから2次元配列へ読み込み

エクセルから読み出して2次元配列へ読み込むサンプルコードです

読み込む範囲はRangeUsed() メソッドを使って、使用されている範囲を取得しています

using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx"))
{
    // 使用されている範囲を取得
    var range = wb.Worksheet("sheet1").RangeUsed(); 

    // 2次元配列を定義します。
    var array = new object[range.RowCount(), range.ColumnCount()];

    // Excelの範囲から2次元配列へデータを読み込みます。
    for (int i = 1; i <= range.RowCount(); i++)
    {
        for (int j = 1; j <= range.ColumnCount(); j++)
        {
            array[i - 1, j - 1] = range.Cell(i, j).Value;
        }
    }
    // 'using'ブロックの終わりでworkbookは自動的に閉じられます。保存はされません。
} 

スポンサーリンク

2次元配列からセルへ書き込み

2次元配列をエクセルに書き込むサンプルコードです

.Cell(startCellAddress).CellBelow(i).CellRight(j) は、指定されたスタートセル(startCellAddress)を基点として、そのセルから下に i 右に j 移動した位置にあるセルを参照しています。

具体的には:

  • .Cell(startCellAddress)startCellAddress で指定されたアドレスにあるセルを取得します。例えば "A1" が指定されていれば、A1セルを指します。
  • .CellBelow(i):基点となるセルから下方向に i 行移動したセルを参照します。例えば、基点が A1 で i が 1 なら、A2セルを指します。
  • .CellRight(j):さらに、そのセルから右方向に j 列移動したセルを参照します。例えば、基点が A1 で j が 1 なら、B1セルを指します。
// 2次元配列のデータを準備
var data = new[,] 
{
    { "ヘッダー1", "ヘッダー2" },
    { "データ1", "データ2" }
};

using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx"))
{
    // 開始セルのアドレスを指定します。ここでは "A1" から始めます。
    var startCell = ws.Cell("A1");

    // 配列のデータをワークシートに書き込みます。
    for (int i = 0; i < data.GetLength(0); i++)
    {
        for (int j = 0; j < data.GetLength(1); j++)
        {
            // 直接 wb.Worksheet("sheet1") を使って値を設定します。
            wb.Worksheet("sheet1").Cell(startCellAddress).CellBelow(i).CellRight(j).Value = data[i, j];
        }
    }

    // ファイルに変更を上書き保存します。
    wb.Save();
}

// 'using' ステートメントの外でwbオブジェクトは自動的に破棄されます。

スポンサーリンク

セルの背景色

C5セル塗りつぶし(色:XLColor.Aqua

// C5セルを塗りつぶし(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Fill.BackgroundColor = XLColor.Aqua;

C5セル塗りつぶし(色:XLColor.Aqua

// C5セルを塗りつぶし(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Style.Fill.BackgroundColor = XLColor.Aqua;

E1~E100セルを塗りつぶし(色:XLColor.LightGreen

//E1~E100セルを塗りつぶし(R1C1形式でセル指定)
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Fill.BackgroundColor = XLColor.LightGreen;

カラー一覧表へ ジャンプ

スポンサーリンク

セルの枠線

C5セル上の枠線細い線に設定(R1C1形式でセル指定)

// C5セルの上の枠線を細い線で黒に設定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.TopBorder = XLBorderStyleValues.Thin; // 枠線のスタイルを設定
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.TopBorderColor = XLColor.Black; // 枠線の色を設定

C5セル下の枠線細い線に設定(R1C1形式でセル指定)

// C5セルの下の枠線を細い線で黒に設定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.BottomBorderColor = XLColor.Black;

C5セル左の枠線細い線に設定(R1C1形式でセル指定)

// C5セルの左の枠線を細い線で黒に設定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.LeftBorder = XLBorderStyleValues.Thin;
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.LeftBorderColor = XLColor.Black;

C5セル右の枠線細い線に設定(R1C1形式でセル指定)

// C5セルの右の枠線を細い線で黒に設定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.RightBorder = XLBorderStyleValues.Thin;
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.RightBorderColor = XLColor.Black;

C5セル枠線をすべて細い線に設定(A1形式でセル指定)

// C5セルの枠線をすべて細い線で黒に設定(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Style.Border.SetOutsideBorder(XLBorderStyleValues.Thin).SetOutsideBorderColor(XLColor.Black);

E1~E100セル範囲の外側の枠線細い線に設定(R1C1形式で範囲指定)

// E1~E100セル範囲の外側の枠線を細い線で黒に設定(R1C1形式で範囲指定)
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; // 範囲全体の外側の枠線のスタイルを設定
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.OutsideBorderColor = XLColor.Black; // 範囲全体の外側の枠線の色を設定

セルの枠線パラメータ一覧表

スクロールできます
スタイルの名称XLBorderStyleValuesのパラメータ説明
無しNone枠線なし
細い実線Thin細い実線
中くらいの実線Medium中くらいの太さの実線
太い実線Thick太い実線
点線Dotted点線
細い点線Hair非常に細い点線
点線(太い)Dashed太い点線
二重線Double二重線
細い点線(2種)DashDot1点鎖線(細い点と線が交互に来る)
中点線(2種)MediumDashDot1点鎖線(中くらいの点と線が交互)

枠線の位置とプロパティの対応表(サンプルコード付き)

スクロールできます
位置プロパティ説明サンプルコード
TopBorder上側の枠線を設定するwb.Worksheet("sheet1").Cell("C5").Style.Border.TopBorder = XLBorderStyleValues.Thin;
BottomBorder下側の枠線を設定するwb.Worksheet("sheet1").Cell("C5").Style.Border.BottomBorder = XLBorderStyleValues.Thin;
LeftBorder左側の枠線を設定するwb.Worksheet("sheet1").Cell("C5").Style.Border.LeftBorder = XLBorderStyleValues.Thin;
RightBorder右側の枠線を設定するwb.Worksheet("sheet1").Cell("C5").Style.Border.RightBorder = XLBorderStyleValues.Thin;
外側全体OutsideBorder範囲の外側の枠線を一括で設定するwb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
内側水平InsideBorder範囲の内側の水平枠線を一括で設定するwb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.InsideBorder = XLBorderStyleValues.Thin;
内側垂直InsideBorder範囲の内側の垂直枠線を一括で設定するwb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.InsideBorder = XLBorderStyleValues.Thin;
内側全体InsideBorder範囲の内側の枠線を一括で設定するwb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.InsideBorder = XLBorderStyleValues.Thin;
対角線DiagonalBorder対角線の枠線を設定するwb.Worksheet("sheet1").Cell("C5").Style.Border.DiagonalBorder = XLBorderStyleValues.Thin;
対角線(逆)DiagonalBorder逆方向の対角線の枠線を設定するwb.Worksheet("sheet1").Cell("C5").Style.Border.DiagonalBorder = XLBorderStyleValues.Thin;

スポンサーリンク

セルの配置

C5セル水平方向配置を中央に設定する場合以下のように書けます

// C5セルの水平方向の配置を中央に設定
wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;

配置オプションの一覧表(サンプルコード付き)

スクロールできます
配置オプション説明サンプルコード
水平方向の配置
設定一覧
セル内のテキストの水平方向の位置wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
垂直方向の配置
設定一覧
セル内のテキストの垂直方向の位置wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center;
テキストの折り返しテキストをセル内で折り返すwb.Worksheet("sheet1").Cell("C5").Style.Alignment.WrapText = true;
縮小して表示テキストを縮小してセルに収めるwb.Worksheet("sheet1").Cell("C5").Style.Alignment.ShrinkToFit = true;
インデントテキストのインデントを設定wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Indent = 2;
テキストの回転テキストの角度を設定wb.Worksheet("sheet1").Cell("C5").Style.Alignment.TextRotation = 45;
改行テキストで改行を行うwb.Worksheet("sheet1").Cell("C5").Style.Alignment.JustifyLastLine = true;

水平方向の配置設定一覧

スクロールできます
オプション説明サンプルコード
Generalデフォルトの配置。内容に基づいて自動的に配置されます。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.General;
Leftテキストを左揃えにします。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left;
Centerテキストを中央揃えにします。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
Rightテキストを右揃えにします。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right;
Fillセルを埋めるようにテキストを繰り返します。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Fill;
Justifyテキストを両端揃えにし、単語の間隔を調整します。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Justify;
CenterContinuous中央揃えですが、隣接する空白セルにまたがって中央揃えが継続されます。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.CenterContinuous;
Distributedテキストを均等に分散させ、両端を揃えます。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Distributed;
配置オプション一覧表へ 戻る

垂直方向の配置設定一覧

スクロールできます
オプション説明サンプルコード
Topテキストを上揃えにします。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Vertical = XLAlignmentVerticalValues.Top;
Centerテキストを中央揃えにします。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center;
Bottomテキストを下揃えにします。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Vertical = XLAlignmentVerticalValues.Bottom;
Justifyテキストをセル内で垂直に均等に分散させます。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Vertical = XLAlignmentVerticalValues.Justify;
Distributedテキストとセルの上下の余白を均等に分散させます。wb.Worksheet("sheet1").Cell("C5").Style.Alignment.Vertical = XLAlignmentVerticalValues.Distributed;
配置オプション一覧表へ 戻る

スポンサーリンク

セル結合(マージ)

A1からB2までの範囲を結合(マージ)するサンプルコード

.Merge();結合(マージ)しています

using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx"))
{
  // A1からB2までの範囲をマージ(例:2x2のセル範囲)
  wb.Worksheet("sheet1").Range("A1:B2").Merge();

  // 上書き保存
    wb.Save();
}

A1からB2までの範囲のセルを結合解除(アンマージ)するサンプルコード

.Unmerge();結合解除(アンマージ)しています

using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx"))
{
    // "sheet1" という名前のワークシート内のマージされた範囲を解除
    // ここでは例として、A1からB2までの範囲がマージされていると仮定
    wb.Worksheet("sheet1").Range("A1:B2").Unmerge();

    // 上書き保存
    wb.Save();
}

スポンサーリンク

フォントカラー

C5セル文字色を指定(色:XLColor.Tomato

// C5セルの文字色を指定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Font.FontColor = XLColor.Tomato;

C5セル文字色を指定(色:XLColor.Tomato

// C5セルの文字色を指定(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Style.Font.FontColor = XLColor.Tomato;

E1~E100セル文字色を指定(色:XLColor.Tomato

//E1~E100セルの文字色を指定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Font.FontColor = XLColor.Tomato; 

カラー一覧表へ ジャンプ

スポンサーリンク

フォントサイズ

C5セルフォントサイズを変更(サイズ:12

// C5セルのフォントサイズを変更(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Font.FontSize = 12;

C5セルフォントサイズを変更(サイズ:12

// C5セルのフォントサイズを変更(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Style.Font.FontSize = 12;

E1~E100セルフォントサイズを変更(サイズ:12

// E1~E100セルのフォントサイズを変更(R1C1形式でセル指定)
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Font.FontSize = 12;

スポンサーリンク

テキストを太字

C5セルのテキストを太字に指定

// C5セルのテキストを太字に指定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Font.Bold = true;

C5セルのテキストを太字に指定

// C5セルのテキストを太字に指定(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Style.Font.Bold = true;

E1~E100セルのテキストを太字に指定

// E1~E100セルのテキストを太字に指定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Font.Bold = true;

スポンサーリンク

テキストをイタリック

C5セルのテキストをイタリックに指定

// C5セルのテキストをイタリックに指定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Font.Italic = true;

C5セルのテキストをイタリックに指定

// C5セルのテキストをイタリックに指定(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Style.Font.Italic = true;

E1~E100セルのテキストをイタリックに指定

// E1~E100セルのテキストをイタリックに指定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Font.Italic = true;

スポンサーリンク

テキストに下線

C5セルのテキストに下線

// C5セルのテキストに下線(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Font.Underline = XLFontUnderlineValues.Single;

C5セルのテキストに下線

// C5セルのテキストに下線(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Style.Font.Underline = XLFontUnderlineValues.Single;

E1~E100セルのテキストに下線

// E1~E100セルのテキストに下線(R1C1形式でセル指定)
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Font.Underline = XLFontUnderlineValues.Single;

スポンサーリンク

画像の貼り付け

PNG画像貼り付けるサンプルコードです

private void pasteImg() {
  // 画像を置く位置を設定(画像の左上角をどのセルに合わせるか)
  int row = 1; // 行 番号
  int colum = 1; // 列 番号

  // 開きたいブックのパスを入れる
  using (var wb = new XLWorkbook(@"C:\新しいフォルダー\エクセルブック.xlsx")) {
    //ワークシートの設定      
    IXLWorksheet ws = wb.Worksheet("Sheet1");
    // AddPictureメソッドで画像を挿入      
    IXLPicture image = ws.AddPicture(@"C:\新しいフォルダー\エクセルブック.PNG");
    // 画像を目的の場所に移動      
    image.MoveTo(ws.Cell(row, colum));
    // ワークブックを保存(実行ファイルと同じフォルダ)      
    wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx");
  }
}

スポンサーリンク

目盛線の表示/非表示

目盛線(グリッドライン)の 非表示

// グリッドラインを非表示にする
wb.Worksheet("sheet1").ShowGridLines = false;

目盛線(グリッドライン)の 表示

// グリッドラインを表示する
wb.Worksheet("sheet1").ShowGridLines = true;

スポンサーリンク

カラー設定 一覧表

フォントカラー設定方法へ ジャンプ

セル背景色設定方法へ ジャンプ

色をいくつかピックアップしてサンプル表を作成しました

スクロールできます
色の名称XLColorプリセットColorオブジェクトカラーコード
ブラックXLColor.BlackXLColor.FromColor(Color.FromArgb(0, 0, 0))XLColor.FromHtml("#000000")
ホワイトXLColor.WhiteXLColor.FromColor(Color.FromArgb(255, 255, 255))XLColor.FromHtml("#FFFFFF")
レッドXLColor.RedXLColor.FromColor(Color.FromArgb(255, 0, 0))XLColor.FromHtml("#FF0000")
ブルーXLColor.BlueXLColor.FromColor(Color.FromArgb(0, 0, 255))XLColor.FromHtml("#0000FF")
グリーンXLColor.GreenXLColor.FromColor(Color.FromArgb(0, 128, 0))XLColor.FromHtml("#008000")
イエローXLColor.YellowXLColor.FromColor(Color.FromArgb(255, 255, 0))XLColor.FromHtml("#FFFF00")
オレンジXLColor.OrangeXLColor.FromColor(Color.FromArgb(255, 165, 0))XLColor.FromHtml("#FFA500")
ピンクXLColor.PinkXLColor.FromColor(Color.FromArgb(255, 192, 203))XLColor.FromHtml("#FFC0CB")
ダークブルーXLColor.DarkBlueXLColor.FromColor(Color.FromArgb(0, 0, 139))XLColor.FromHtml("#00008B")
ライトブルーXLColor.LightBlueXLColor.FromColor(Color.FromArgb(173, 216, 230))XLColor.FromHtml("#ADD8E6")
グレーXLColor.GrayXLColor.FromColor(Color.FromArgb(128, 128, 128))XLColor.FromHtml("#808080")
ゴールドXLColor.GoldXLColor.FromColor(Color.FromArgb(255, 215, 0))XLColor.FromHtml("#FFD700")
パープルXLColor.PurpleXLColor.FromColor(Color.FromArgb(128, 0, 128))XLColor.FromHtml("#800080")
トマトXLColor.TomatoXLColor.FromColor(Color.FromArgb(255, 99, 71))XLColor.FromHtml("#FF6347")
チョコレートXLColor.ChocolateXLColor.FromColor(Color.FromArgb(210, 105, 30))XLColor.FromHtml("#D2691E")

XLColorクラスで直接アクセスできるプリセットの色、System.Drawing.Color オブジェクトから作成する方法、そしてHTMLカラーコードから作成する方法の3つの異なる設定手法を提供しています。

スポンサーリンク

クリックしてジャンプ