0

ファイルを保存するか開くかを選択できるWebページ上に(EPPLUSを使用して)E​​xcelファイルを作成しています。

Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;  filename=Excel_List.xlsx");
package.SaveAs(Response.OutputStream);
Response.End();

それはうまくいきます。ユーザーがファイルを開いた/保存したかどうかを確認するにはどうすればよいですか?そのためのイベントはありますか?

4

4 に答える 4

2

最も簡単な答えは、できないということです。サーバーがファイルをクライアントに渡すと、ASP.NET はそのファイルを制御できなくなります。

理論的には、Excel ファイルにマクロを配置してサーバー上の URL を呼び出すこともできますが、それはユーザーが Excel ファイルを開き、マクロの実行を許可することを前提としています (最新の Excel バージョンでは無効になっています)。

于 2013-02-25T11:30:01.153 に答える
1

あなたはそれを決定することはできません。出力が生成された後、ダウンロード プロセスやユーザーがダウンロードしたファイルに対して実行するアクションに関する情報はありません。ほとんどの場合、Web ブラウザのセキュリティ制限が原因です。

于 2013-02-25T11:29:56.993 に答える
0

いいえ、それはHTTPの目的ではありません。サーバーからすべてのデータを正常に送信できる場合は、クライアントがすべてのデータを受信したと見なすことができます。その後、クライアントはデータを破棄、保存、印刷、コピー、好きなように行うことができます。

このようなチェックを実行する場合は、Excelファイル自体から実行する必要があります。しかし、プライバシーのために、そうすべきではありません。自宅に電話をかけているExcelファイルを見つけた場合、どうなるかわかりません。

于 2013-02-25T11:31:06.463 に答える
0

ファイルにマクロを追加せずに実際に Excel で開いたかどうかを知ることはできませんが、ダウンロードが正常に完了したという確認をサーバーに送信する方法はいくつかあります。このためには、ブラウザーだけで HTTP 要求を処理するのではなく、ブラウザーにリッチ クライアントを組み込んで HTTP 要求を処理する必要があります。これには、 SoftArtisans XFileなど を使用できます。当社の .NET Excel ライブラリには、ダウンロード プロセスを管理できる ActiveX コントロールも付属しています ( OfficeWriter Assistantと呼ばれます)。

免責事項:私はSoftArtisansで働いています

于 2013-02-26T14:48:18.977 に答える