この記事ではC#を使ってエクセルを自動で自由自在に操れる方法を載せています。
本記事はこんな方におすすめ
C#でExcelファイルを操作したい人向け
※今回はMicrosoft Visual Studioを使って説明します。
参考
プログラミングど素人がC#を独学習得する時に使ってたおすすめの本がこちら⇩
-
プログラミング未経験の30歳がC#を独学習得する時に読んだおすすめの本5選!
本記事では、独学でプログラミングを勉強するために実際に役立った本を紹介します。 プログラミング未経験者向け 30歳からプログラミングの勉強を始めた人向け 本の内容を実践できる人向け &n ...
続きを見る
ClosedXMLのインストール
まずはエクセルを操作するために必要なClosedXMLなる物をNuGetからインストールさせます。
Visual Studioのツールから「NuGetパッケージマネージャー」を選択。
「NuGetパッケージマネージャー」の一番上にある「パッケージマネージャーコンソール」をクリックします。
するとVisual Studioの最下部にパッケージマネージャーコンソールが出てきて「PM>」の後ろ辺りに文字が記入出来るような感じでチカチカしてるんじゃないかな?
ここに「PM>Install-Package ClosedXML」って記入します。
んで、Enterをクリックするとパッケージ情報を収集し始めるのでしばし待機!
しばらくすると「'ClosedXML 0.93.1' が (ネームスペース名) に正常にインストールされました」って文字が出てきたら成功!
最後に「using ClosedXML.Excel」を追加して完成
これでエクセルを操作するための下準備が出来ました。
既存のExcelファイルの読み込み
次にエクセルファイルを読み込みます。
テンプレートとして下記コードが読み込み時の必須コードになると思います。
1 2 3 |
XLWorkbook book = new XLWorkbook(@"読み込みたいExcelファイルのpath"); IXLWorksheet sheet = book.Worksheet(1); int Row = sheet.LastRowUsed().RowNumber(); |
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#を独学習得する時に使ってたおすすめの本がこちら⇩
-
プログラミング未経験の30歳がC#を独学習得する時に読んだおすすめの本5選!
本記事では、独学でプログラミングを勉強するために実際に役立った本を紹介します。 プログラミング未経験者向け 30歳からプログラミングの勉強を始めた人向け 本の内容を実践できる人向け &n ...
続きを見る