こんにちは、ASP.NETMVCでExcelへのエクスポートがどのように行われるかについての最良の方法を探しています
今私はbillsternberger.netからこれを手に入れました
C#を使用してASP.NETMVCからExcelまたはCSVにエクスポートする
//Export to excel
public ActionResult Download()
{
List<Lookup> lookupList = data,GetLookupList();
var grid = new System.Web.UI.WebControls.GridView();
grid.DataSource = lookupList;
grid.DataBind();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=YourFileName.xlsx");
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
grid.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
return View();
}
これは、データグリッドへのバインドとExcelへのエクスポートから機能しています。
今私がする必要があるのは、私のhtmlテーブルを取得し、それをExcelにエクスポートすることです。ここで、テーブルデータの操作にjquery datatableを使用したので、クライアント側で行われるため、より軽量になります。
jqueryとajaxを使用してみました。ここで、HTMLテーブルをコントローラーのエンティティに渡します。
function Export()
{
var details = {};
details.LookupName = $("#tblLookup").html();
//Validate details
var url_ = generateURL("/Home/Download"); //Call Save Controller and pass details entities
$.ajax({
type: "POST",
url: url_,
data: details, //details will act as the Entities Model
traditional: true,
success: function(data) {
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("error: " + XMLHttpRequest.responseText);
},
dataType: 'json'
});
};
A potentially dangerous Request.Form value was detected from the client
しかし、それは私などを投げます。
それはMVCでどのように行われますか?私はすでにいくつかの同様のトピックを探していますが、それは常に私の最初の作業サンプルに私を落とします。
よろしくお願いします