mvcのajaxを介してexcelファイルをダウンロード
]MVCで大きなフォームを処理する場合、フォームの特定のサブセットのデータを含むExcelファイルを生成する必要がある場合があります。 Ajaxは、サーバーに部分的なリクエストを行うことができるようにすることにより、これに対するソリューションを提供します。
はExcelファイルを直接ダウンロードできません
残念ながら、Ajax経由で直接ダウンロードするファイルを返すことはできません。代わりに、AJAXを使用して関連データをサーバーに公開する代替方法を検討します。
サーバーサイドファイルの生成と応答
]]サーバーでは、サーバー側のコードを使用してExcelファイルを生成できます。これを行うには、epplusやnpoiなどのライブラリの使用を検討してください。その後、作成されたファイルのパスまたはファイル名をajaxコールに戻すために渡すことができます。
fileダウンロード
]にリダイレクトクライアントのjavaScriptでは、 window.location = '/coldiment/download?file =' returnValue
を使用してファイルのURLにJavaScriptウィンドウの場所を設定するため、ブラウザにダウンロードするように使用できます。
シームレスなユーザーエクスペリエンス
]このアプローチは、ファイルのダウンロード操作がソースページを離れないため、シームレスなユーザーエクスペリエンスを提供します。
ajaxコール例
]以下は、これを達成するajaxコールの例です。
$.ajax({
type: 'POST',
url: '/Reports/ExportMyData',
data: '{ "dataprop1": "test", "dataprop2" : "test2" }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (returnValue) {
window.location = '/Reports/Download?file=' returnValue;
}
});
ファイルダウンロードのコントローラーメソッド
ダウンロード操作の対応するコントローラー方法は次のとおりです。
[HttpGet]
public virtual ActionResult Download(string file)
{
string fullPath = Path.Combine(Server.MapPath("~/MyFiles"), file);
return File(fullPath, "application/vnd.ms-excel", file);
}
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3