3流プログラマのメモ書き

元開発職→現社内SEの三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(.Net)C#からExcelへの遅延バインディングで、書式設定を行う

(.Net)C#から遅延バインディングでExcelファイルに読み書きするで、C#からExcelへ遅延バインディングを使ったアクセスを書きましたが、今回はセルの書式設定を行う方法です。Rangeオブジェクトの NumberFormatLocal プロパティに設定してやればいいようです。

こんな感じ。(シートオブジェクトまでは生成していることとします。)

//oSheetはシートオブジェクト
object oRange=null;

//範囲選択
oRange = oSheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null
                    , oSheet, new object[] { "E1:E1500", Missing.Value });
//書式設定
oRange.GetType().InvokeMember("NumberFormatLocal", BindingFlags.SetProperty, null
                     , oRange, new object[] { "0%" });

第5引数で、書式指定の文字列を指定します。
文字列表示にするなら @ 、小数点第二位までなら 0.00 というように、Excelで指定する書式文字列が指定できます。

参考:
NonSoft - エクセルを操作する小技のサンプル(C#.NET)
C# Excel操作覚え書き