1

IE 7 経由で Excel ファイルを提供する Web アプリケーションがあります。URL から HTTP GET を使用してファイルを要求し、コンテンツ タイプが「application/vnd.ms-excel」のデータを返します。次に、スプ​​レッドシートを IFrame で開きます。

スプレッドシートをダウンロードするときに Excel が既に開いていない限り、これはすべて正常に機能します。この場合でも正しく表示されますが、開いている Excel のインスタンスを再利用します。IFrame を閉じると、Excel がハングします。ユーザーが Web アプリケーションからログアウトした場合、または別の種類のファイルをダウンロードした場合にのみ、Excel のロックが解除されます。

[ツール] の下にある [他のアプリケーションを無視する] 設定をオンにしてみました。オプション | 一般的ですが、問題は解決しませんでした。

また、この回答の手順に従ってみました(リンクされた参照には、「この問題は Excel 2007 ベータ 2 で対処されています」と記載されています)。

Excel がハングするのを防ぐために、現在行っていない何らかの「廃棄」手順はありますか?

バージョン:

エクセル 2003 (11.8220.8221) SP3

IE 7.0.5730.11 (更新バージョン: 0)

4

5 に答える 5

1

これが役立つかどうかはわかりませんが...

私はずっと前に同様の問題(その場でCSVコンテンツを生成する)を抱えていましたが、覚えているのは、正しい応答メソッドが呼び出されて何かをしなければならなかったことだけです。コードはこんな感じでした


Response.Clear();
Response.Buffer = true;

Response.AppendHeader("Content-Disposition", "attachment; filename=export.csv");
Response.Cache.SetCacheability(HttpCacheability.Private);
Response.Cache.SetExpires(DateTime.MinValue);
Response.Cache.SetLastModified(DateTime.Now);
Response.Cache.SetMaxAge(new TimeSpan(1));
Response.ContentType = "text/csv";

Response.ContentEncoding = System.Text.Encoding.Unicode;

...
//Some  writing to the Response.OutputStream
...

Response.Flush();

//I am not sure about the following line:
Response.End(); 

于 2009-01-30T20:22:41.363 に答える
1

Robert's answerに加えて、(Java) コードの次の行は、Excel がハングするのを防ぐという点で、この問題を修正します。

response.setHeader("Content-Disposition", 
    "attachment; filename=\"" + filename + "\"");

[NB 'response' は HttpServletResponse です]

ただし、スプレッドシートは IFrame に表示されるのではなく、Excel ウィンドウに読み込まれます...

更新: IFrame の URL を空白にリセットすると、Excel インスタンスが強制的に破棄され、この問題が修正されます (Content-Disposition変更する必要はありません)。

于 2009-01-30T12:38:28.040 に答える
0

残念ながら、これは完全にあなたの手に負えません。使用している Excel のバージョンと、適用されている更新プログラムによって異なります。

于 2008-10-14T14:25:25.147 に答える
0

ご自身の環境でこの問題を再現できましたか? そうでない場合は、クライアントのコンピューターに問題がある可能性があります。どのオプションがインストールされているか、またはインストールされていないか、または Excel がパッチで維持されているかどうかを確認する方法はありますか?

その後、IE 7ではないにしても、オフィス自体を再インストールする必要があるようです。

また、iFrame の終了に関する問題についても調査します。この理論をテストするには、iframe を新しいページ (iframe なし) に投稿してから、iframe と Excel ファイルを含むページにリンクを戻すことができますか? おそらくあなたにとって有効な解決策ではないことは承知していますが、それがExcel、IE7、またはiframeコードにバグがあるかどうかを排除するのに役立つはずです.

于 2009-01-27T17:55:57.657 に答える