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

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

(.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操作覚え書き