- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#でのEXCEL出力に関して)
C#でのEXCEL出力に関する問題
このQ&Aのポイント
- C#でEXCELシートにデータを出力した際、EXCELファイルを開くと中身のシートが表示されない現象について
- 記述に過不足がある場合について指摘
- 解決方法についての質問
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>range1.Value = 仕入先名[tcount]; >range2.Value = 図面番号[tcount]; の部分がエラーになるので range1.Value = tcount; range2.Value = tcount; に変更し、 >DeleteFile を System.IO.File.Delete に変更して試してみましたが、こちらの環境 ( Windows XP、VS 2008、Excel 2000 ) では再現できませんでした。 どこか別の関数とかで Excel の開放ができていないとか? タスクマネージャのプロセスタブを監視しながら動作させてみてはいかがでしょうか。
その他の回答 (1)
- tsukasa-12r
- ベストアンサー率65% (358/549)
回答No.1
なんだか不可解な現象ですけど、出力したファイルを開こうとしたときに、ガベージコレクトされずにメモリ上に残っていた Excel がアクティブになると問題の現象が起きるようです。 xls に出力した後で、メモリ上に残っている Excel をタスクマネージャで強制的に終了させると、この現象は起きないと思います。 とりあえず、 >objExcel.Quit(); >Marshal.ReleaseComObject(objExcel); >objExcel = null; の後に GC.Collect(); を入れてみてはいかがでしょうか。
質問者
補足
ご回答ありがとうございます! ご指摘頂いたように記述したら正しく起動するようになりました。 但し、もう1点、上記の記述をした場合、プログラムが起動している 最中はどうしても正しく開きません。(今までと同じ現象) 起動している最中は、何か掴んでいるのでしょうか??? 教えて頂ければ幸いです。 よろしくお願いします。
補足
ご回答ありがとうございます! 早速、教えて頂いた内容の通り記述してみましたが、結果は同じでした。 確かにタスクマネージャのプロセスは、EXCEL.EXEが残ったままです。 何か開放忘れでしょうか。。。 申し訳ありません。 もう少し教えて頂きたいと思います。