@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

MSExcel2003にアップデートすると、エクセルが読み込めない!?(ASP.NET)

1
投稿者投稿内容
くろまめ
会議室デビュー日: 2005/04/01
投稿数: 6
投稿日時: 2005-07-12 14:55
皆様はじめまして。
いつも参考にさせていただいております。

現在、WebでExcelファイルを指定し、
COMを使用してExcelのデータを読み込むという開発をしております。
(以下にソースを記述します)

//------------------------------------------------------------------------------
// fileは HtmlInputFile, FileNameはWebサーバに保存する時のファイル名です。
this.file.PostedFile.SaveAs(FileName);

Excel.Application _Excel = new Excel.ApplicationClass();
Excel._Workbook _Book = _Excel.Workbooks.Open(FileName,Type.Missing・・-省略-);
Excel._Worksheet _Sheet = (Excel.Worksheet)_Book.Sheets[1];

/*----------------------------*/
// ファイルデータ読み込み処理
/*----------------------------*/

_Excel.Workbooks.Close();
_Excel.Quit();
//------------------------------------------------------------------------------

今まで、WebサーバにはMS Excel 2002をインストールしており、
何の問題もなく動いていたのですが、
MS Office Excel 2003(SP1)をインストールして、
MS Excel 2002で作成したファイルを取り込もうとすると、
フリーズしてしまいます。
(MS Office Excel 2003(SP1)で作成したファイルは正常に取り込めます。)

デバックして確認してみたところ、
データの読み込み処理は動いているのですが、
_Excel.Workbooks.Close();
で、処理がとまってしまいます(例外も発生せずに、「処理中」の状態になります)。

Excel2002で作成したファイルも取り込めるようにしたいのですが、
可能でしょうか?

ご存知の方いらっしゃいましたらぜひお教えください。
以上、よろしくお願い致します。
(掲示板初心者なので、わかりにくいところがあると思いますが、
 その際にもご指摘していただけるとありがたいです。)
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-07-12 15:26
引用:

くろまめさんの書き込み (2005-07-12 14:55) より:
データの読み込み処理は動いているのですが、
_Excel.Workbooks.Close();
で、処理がとまってしまいます(例外も発生せずに、「処理中」の状態になります)。


古いバージョン何たらの警告ダイアログとかが出てるんじゃないですかね?
何だったかのプロパティで、ダイアログ出さないようにしてみたらどうでしょ?
くろまめ
会議室デビュー日: 2005/04/01
投稿数: 6
投稿日時: 2005-07-12 17:04
なちゃさん

早速のレスありがとうございます。
ご指摘の通り、
_Excel.DisplayAlerts = false;
を追加したらうまくいきました。

待ちの状態は、内部で何らかのダイアログを出そうとしているのですね?
見た目は、「無限ループ・・?」だったので、
全然気づきませんでした・・・・orz
非常に助かりました。
ありがとうございました!!
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-07-12 18:12
念のためですが。

引用:

くろまめさんの書き込み (2005-07-12 17:04) より:
_Excel.DisplayAlerts = false;
を追加したらうまくいきました。


ということから、

引用:

待ちの状態は、内部で何らかのダイアログを出そうとしているのですね?


なのはおそらく間違いないとは思いますが、
何のダイアログを出そうとしているか等はちゃんと確認してくださいね。
予想外のまずいエラーが出ていてびっくり、なんてことにならないように。
※何らかの方法でWebじゃない環境でうまく起動してみるなどして。
くろまめ
会議室デビュー日: 2005/04/01
投稿数: 6
投稿日時: 2005-07-13 11:27
引用:


何のダイアログを出そうとしているか等はちゃんと確認してくださいね。




確認しました!!
皆様の参考にもなるかと思い、一応あげときます。
Windowsアプリケーションで同じようなものを作成してやってみたところ、

  以前のバージョンのExcelで保存したファイルに含まれる式は、
  ファイルを開いたときに自動的に再計算されます。
       [はい][いいえ][キャンセル]

が出ました。
・・・非常に納得です。
1

スキルアップ/キャリアアップ(JOB@IT)