C# Excel プログラミング 作業効率化

【C#】エクセルファイルを操作する方法

投稿日:

この記事ではC#を使ってエクセルを自動で自由自在に操れる方法を載せています。

目次にリンク付けてるので気になる所から読み進んでいってね(はぁと

※今回はMicrosoft Visual Studioを使って説明します。

 

目次

ClosedXMLのインストール

まずはエクセルを操作するために必要なClosedXMLなる物をNuGetからインストールさせます。

Visual Studioのツールから「NuGetパッケージマネージャー」を選択。

「NuGetパッケージマネージャー」の一番上にある「パッケージマネージャーコンソール」をクリックします。

[クリックで拡大出来ます。]

するとVisual Studioの最下部にパッケージマネージャーコンソールが出てきて「PM>」の後ろ辺りに文字が記入出来るような感じでチカチカしてるんじゃないかな?

 

ここに「PM>Install-Package ClosedXML」って記入します。

んで、Enterをクリックするとパッケージ情報を収集し始めるのでしばし待機!

しばらくすると「'ClosedXML 0.93.1' が (ネームスペース名) に正常にインストールされました」って文字が出てきたら成功!

最後に「using ClosedXML.Excel」を追加して完成

[クリックで拡大出来ます。]

 

これでエクセルを操作するための下準備が出来ました。

 

既存のExcelファイルの読み込み

次にエクセルファイルを読み込みます。

テンプレートとして下記コードが読み込み時の必須コードになると思います。

 



bookに読み込みたいエクセルファイル

sheetに読み込んだエクセルファイルのsheetを選択(sheet1を選択してます。)

Rowに読み込んだsheetの使われているセルの番号を取得

 

これくらいのデータがあれば後は条件分岐とか繰り返しとか使うと結構なんでも出来ます。

 

新規のExcelファイルを作る

読み込んでばかりじゃいられない!新しく創造したいんだ!って時はこれ

 

XLWorkbook book = new XLWorkbook();
IXLWorksheet sheet = book.AddWorksheet("sample_sheet1");
int row = 1;

 

空のエクセルをbookに入れ

新しく名前を付けたSheetを加え

最後に行移動のためにrowに1を入れておく。

 

2行で新しいファイル作れるなんて便利なもんだねぇ。

 

Excelファイルの操作

ここまでこれたら次は操作して行くよ!

比較的よく使うであろう関数を独断と偏見によってまとめました。

Cell

sheet.Cell(1, 1).Value;

sheet.Cell("A1").Value;

これは両方共エクセルのA1のセルの値を取得しています。

 

sheet.Cell(1, 1).Value = "nullpo";

 

とか入れるとエクセルA1のセルに「nullpo」って文字が入ります。

このValueはobjectなので条件分岐なんかで比較する時には

if(sheet.Cell(1, 1).Value.ToString() == "nullpo")

みたいに文字列に変換しましょう。

 

セルに色をつける

sheet.Cell(1, 1).Style.Fill.BackgroundColor = XLColor.Red;

セルA1のバックグラウンドを赤にする。

 

XLColorって入れるとその後に色を選択出来るようになるので好きな色を選んでね。

選択出来る色が多すぎて名前だけじゃどんな色か分からないけどねー。

 

ボーダーをつける

sheet.Cell(1, 1).Style.Border.BottomBorder = XLBorderStyleValues.Thick;
sheet.Cell(1, 1).Style.Border.BottomBorderColor = XLColor.Red;

[クリックで拡大出来ます。]

 

A1のセルの下側に細いボーダーをつける。

その後にボーダーを赤くする。

って言う処理をしています。

 

名前を付けてExcelファイルを保存

book.saveAs(@"保存先のpath+エクセルファイルの名前");

(例:book.saveAs(@"C:\Users\user\Desktop\sample.xlsx");)

 

ファイル名まで記入するのがミソ。

ここ忘れるとエラーが・・・。

 

Excelファイルを上書き保存

book.save();

多くは語るまい。

読み込んだファイルに上書きします。

-C#, Excel, プログラミング, 作業効率化
-, ,

Copyright© Well Magazine , 2019 All Rights Reserved Powered by STINGER.