previous arrowprevious arrow
next arrownext arrow
Shadow
Slider
C#/VB.net

C# エクセル(Office)にdatatableの中身を出力 色、罫線付き

エクセルをC#で処理するときにMicrosoft.Office.Interop.Excelを参照追加して処理することが今のところは主流です。

ここで面倒なことがあります。

プロセスが残らないよう制御が面倒です。

いちいちエクセルを開くので時間がかかる。

ということで、エクセルを開かず、読込む方法を紹介します。

実際に作ったファイルはこちらからダウンロードできます。

データテーブルの準備などをしているので、ダウンロード後、そのまま実行できます。

デモンストレーションで動かした動画を載せておきます。

 

Datatableをエクセルのシートに出力するコード

Datatableの中身をエクセルのシートオブジェクトに出力するメソッドを作りました。

色や罫線も付けています。

取込むデータテーブルは以下です。

流れとしては以下です。

①エクセルのシートに列名を出力

②Datatableの中身をエクセルのシートに出力

この時、「女」セルがあれば、フォントを赤にしています。

③出力した範囲に罫線を引く

④列に色を付ける

解説

列名を出力

16行目~18行目で列を出力しています。

Cell(1,col)で1行目かあから順に出力しています。

Datatableの列の開始は0列目から始まりますが、エクセルは1列目です。

なので、col-1でエクセルとDatatableの列を合せています。

Datatableの中身を出力

23行目~36行目でDatatableの中身を出力しています。

ここもDatatableの行、列のかいしは0からですが、エクセルは1から始まることを考慮しています。

行は列の次の行なので、2行目です。

⇒row+2をして合せています。

また、この時、IF文を使ってDatatableの値が「」の場合、フォントをにしています。

罫線、背景色

それぞれ、列数と行数をDatatableのrows.countとcolumns.countで取得し、

線と色をセットする範囲を指定しています。

_

 

Closed XMLの参照設定追加

ClosedXMLで参照追加が必要です。

手順は以下の通りです。

パッケージマネージャコンソールを開く

「ツール」→「NuGetパッケージマネージャ」→「パッケージマネージャコンソール」の順で開きます。

インストール実行

その後、Install-Packageコマンドを実行して完了です。

 

 

関連している記事

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です