複数のExcelのバージョンに対応する ~遅延バインディングまとめ~

最後に

ここまでで遅延バインディングを利用した、Excelファイルの読み込み書き込み最大行列の取得、罫線の描画について書いてきましたが、最後にこれらをクラス化したものを公開させていただきます。
また、簡単ではありますが利用方法も記載しておきますので、ご利用になりたい方がおられましたらご自由にご利用ください。

※ご利用は各自の責任で行って下さい。
 関数 ColStringToColNumber(string col)、ColNumberToColString(int col) は確認をほとんどしていませんので、利用される際は十分な検証を行ってから利用されることをお勧めします。

簡単な使い方を以下に記載しておきますので、利用される方は参考になさってください。

//第一引数にファイルパス、第二引数にエラーが発生した際にMessageBoxを表示するか(true)、表示しないか(false)を指定します。
ExcelLateBind LateBind = new ExcelLateBind(@"C:\ExcelFile.xlsx", false);

//ファイルを開きます。
//この時他のプロセスでファイルを利用している場合(頭に~$がつくものが見つかった場合)はエラーメッセージを強制的に表示します。
//もし指定されたパスのファイルが存在しない場合は、ファイルを新規作成します。
LateBind.Open();

//シートを選択します。シート番号でもシート名でも選択可能です。
LateBind.SelectSheet("Sheet1");

//上記で選択したシートのセルの値を取得して文字列として返します。
//セルの指定は以下3種類の指定が可能です(例として3パターン全てA1の値を取得しています)
string value;
value = LateBind.GetValue("A1");
value = LateBind.GetValue("A", 1);
value = LateBind.GetValue(1, 1);

//シート内の全データを順に取得する場合は以下のように記述することができます。
for (int col = 1; col < LateBind.MaxCol; col++)
for (int row = 1; row < LateBind.MaxRow; row++)
    value = LateBind.GetValue(col, row);

//シートを末尾に追加します。シート名を指定しない場合、自動で名前が付けられます。
//自動で追加された末尾のシートが選択された状態になります。
LateBind.AddSheet("追加するシート名");

//選択されたシートのセルに値を追加します。
//セルの指定は以下3種類の指定が可能です(例として3パターン全てA1セルに値"the quick brown fox jumps over the lazy dog"を設定しています) ※英語版の"いろはにほへと"です
LateBind.SetValue("A1", "the quick brown fox jumps over the lazy dog");
LateBind.SetValue("A", 1, "the quick brown fox jumps over the lazy dog");
LateBind.SetValue(1, 1, "the quick brown fox jumps over the lazy dog");

//セルに罫線を描画します。
//引数が4つの場合(罫線の位置を指定しない場合)は、4方向の枠、範囲内すべてに罫線が追加されます
//例としてA1からB2の外枠、中線すべてに太線の1本線が描画されます
LateBind.SetBorderLine("A1", "B2", ExcelLateBind.XlLineStyle.Normal, ExcelLateBind.XlLineWeight.Medium);
//引数が5つの場合(罫線の位置を指定した場合)は、指定された分だけ罫線が追加されます
//例としてA3からB3のセル下側に標準太さの点線が描画されます
LateBind.SetBorderLine("A3", "B3", ExcelLateBind.XlDrawLine.Edge_Bottom, ExcelLateBind.XlLineStyle.Dash, ExcelLateBind.XlLineWeight.Normal);

//ファイルを閉じます。この時引数としてtrueを指定すると保存して終了、falseを指定すると保存せずに終了となります。
LateBind.Close(true);

以上です。
Excelの複数バージョンの対応で悩んでいる方の参考になれば幸いです。

※このページに書かれているソースコードはご自由にご利用していただいて問題ありませんが、各自の責任でお願いします。問題や不利益等が発生したとしても当サイトは関知しません。

< その他の機能

Excel遅延バインディング一覧
 複数のExcelのバージョンに対応する ~遅延バインディング①~
 複数のExcelのバージョンに対応する ~遅延バインディング②~
 複数のExcelのバージョンに対応する ~遅延バインディング③~
 複数のExcelのバージョンに対応する ~遅延バインディングまとめ~ このページ

投稿日:2020年1月22日 更新日:

執筆者:

このサイトの管理者について

1980年代生まれ
石川県在住

メーカー2社経験後に退社

1年程度自由に在職中はできなかったことにチャレンジ

その後コロナの影響でなかなか仕事が見つかりませんでしたが、無事就職

現在はシステム会社に勤務中

PAGE TOP