C#からExcelファイルのセルの書式や罫線を変更する方法
前回、Microsoft.Office.Interop.Excelライブラリを使用してC#からExcelファイルを読み書きする方法を紹介しました。
今回はセルの書式の変更や罫線を入れる方法を紹介します。
※Microsoft.Office.Interop.Excelライブラリのダウンロード・インストール方法は前回記事を参照ください。
[ad#top-1]
今回のサンプルプログラム
今回のサンプルプログラムの紹介です。前回のプログラムをベースにしており、そこに書式設定のコードを追加したものになります。
フォームの「Excelファイル読み込み」ボタンを押すと、指定したExcelファイルが現れ、「A1」セルの値がメッセージボックスに表示されます。そのままメッセージボックスの「OK」ボタンを押しましょう。
すると、「A1」セルの値が変わることと、「A1:C5」セルに罫線が引かれます。(A1セルへの値がはみ出るので##と表示されてしまう)
メッセージボックスの「OK」ボタンを押すと、Excelファイルが閉じます。
Excelファイルを改めて開いてみると、A1セルに時刻が入っていることと、書式が変わっている点がわかります。
今回の追加点
前回のソースコードに以下を追加しています。前回は適当な文字列を入力しましたが、今回は時間データを書式指定で入力する点と、文字サイズやフォントなどを設定しています。
Excel.Range aRange = xlApp.get_Range("A1",Type.Missing) as Excel.Range; if ( aRange != null ){ MessageBox.Show(aRange.Value2.ToString()); aRange.Value2 = DateTime.Now.ToString("HH時mm分ss秒"); aRange.Font.Size = 18; //文字サイズ aRange.Font.Name = "Meiryo UI"; //フォント aRange.Font.Bold = true; //BOLD aRange.Font.Color = 0xFF0000; //文字色 aRange.Interior.Color = 0x44FFFF; //セル色 }
また、罫線を描くために以下のようなコードも追加しました。
罫線は一度に全方向を描くことができず、上下左右中をそれぞれ指定する必要あります。
//"A1:C5"セルに罫線を引く Excel.Range kRange = xlApp.get_Range("A1:C5",Type.Missing) as Excel.Range; kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous; kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlContinuous; kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous; kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous; kRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous; kRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous;
ソースコード全文
以下がソースコード全文です。
[ad#ad-1]
スポンサーリンク