C# Excelを遅延バインディングで操作する方法
いつもお世話になっております
只今C#でExcelファイルを出力するプログラムを作成しています。
以前やり方が分からずここに質問し、なんとかExcelに出力できるようになったのですが
Excelのバージョンが2007にしか対応していないことが分かり
遅延バインディング仕様に作り変えている最中です。
ところが、あと少しというところでクリアできない問題が2つ出てきたので、質問させていただきます。
1つは枠線を引く処理です。現在以下のように記述していますが
どうしても例外が発生してしまいます(0x800A03EC)
Type line = Type.GetTypeFromProgID("Excel.XlLineStyle.xlContinuous");
Type insidevertical = Type.GetTypeFromProgID("Excel.XlBordersIndex.xlInsideVertical");
Object tempA = objRange.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, objRange, null);
Object tempB = tempA.GetType().InvokeMember("Item", BindingFlags.GetProperty, null, tempA, new object[] { insidevertical });
tempB.GetType().InvokeMember("LineStyle", BindingFlags.SetProperty, null, tempB, new object[] { line });
これがどう解決していいかわかりません・・・
遅延バインディングという手法も最近知ったばかりで、見よう見まねという状況です。
2つ目は、ファイル保存時の拡張子です。
現在は以下のように記述しています
(問題なく動作はしてくれます)
object[] mySave ={strFileName,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing};
objBook.GetType().InvokeMember("SaveAs", BindingFlags.InvokeMethod, null, objBook, mySave);
以前はこのようにしていました
objBook.SaveAs(strFileName,
Excel.XlFileFormat.xlExcel8,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing);
保存する拡張子をxlsに統一したいのですが、遅延にした場合のファイル形式の指定方法がわかりません
Type.Missingにすると、実行環境にあるものに合わせた拡張子で保存されてしまい
Excel2007を使用している環境ではxlsxのファイルを作ってしまいます。
Type exFormat = Type.GetTypeFromProgID("Excel.XlFileFormat.xlExcel8");
のような感じで使えるかとも思ったのですが、できませんでした。。
わかる方がいましたら、よろしくお願いします。
開発環境
Vista
VisualStudio2008
.NET Framework 3.5
お礼
詳しい説明をありがとうございました 微妙な違いが色々とあるようですね 私は3ピンや引きバネのタイプしか使ったことない身なのですが まだバネの部分をダメにした経験がないので もう少し 今のまま使い続けてみようかなーと思ってます。 革靴が主流だった頃にテレマークを初めて しばらくして プラブーツが出回ってきた頃 やはりなかなか採用できなかった のですが ある時思い切って使ってみたら 安定感の違いに やっと気づいて驚いたのと似たようなものかも知れませんねー 道具に助けられながら上達するのはシャクと考える天の邪鬼 なので 最近カンダハーのように足の前の方でレバーを 前にパタンと倒して固定する古~いタイプの締め具を手に入れ 今度使ってみるのを楽しみにしている位なのですが 最新型の道具を揃えようが 古い物で頑張ろうが 滑りがヘタッピでは笑われるだけなので 自分なりに迷いながらも 楽しんでいこうと思ってます。 新しい道具類にも興味は持っておりますので 大変勉強になりました ありがとうございました。