![](/img/trans.png)
[英]Export JSON data to Excel sheet using ASP.Net MVC Web Api
[英]Excel Export in ASP.NET Web Service
我有这个ASP.Net Web应用程序,在我使用JQuery JQGrid的一个页面中,我希望能够将JQGrid导出到Excel工作表,因此我使用JavaScript收集了数组中的值,然后将其称为WebService将值填充到DataGrid中,我成功完成了所有操作,除了在WebService中进行导出外,没有文件下载出现,这是我的WebService代码:
[WebMethod]
public void GetData(object[] Values)
{
DT_ToFill.Columns.Add("CaseID");
DT_ToFill.Columns.Add("SR");
foreach (object Value in Values)
{
Dictionary<string, object> DictVals = new Dictionary<string, object>();
DictVals = (Dictionary<string, object>)Value;
string CaseID = DictVals["CaseID"].ToString();
string SR = DictVals["SR"].ToString();
object[] Obj = new object[2] { CaseID, SR };
DT_ToFill.Rows.Add(Obj);
}
ExportToExcel(DT_ToFill, Context.Response);
}
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
public void ExportToExcel(DataTable dt, HttpResponse Response)
{
GridView GridView1 = new GridView();
GridView1.DataSource = dt;
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "inline;filename=Schedule_ExcelSheet.xls");
Response.Charset = "";
Response.ContentType = "application/ms-excel";
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.UTF8;
StringWriter sw = new StringWriter();
HtmlTextWriter ht = new HtmlTextWriter(sw);
GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(ht);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
public void VerifyRenderingInServerForm(Control control)
{
}
帮助请...谢谢
听起来您正在将excel文件发回作为对ajax请求的响应? 如果是这样,我认为您无法通过ajax进行文件下载。
也许像现在一样通过ajax发送数据,但是然后执行新窗口或iframe(将其附加到document.body)并将src设置为返回excel文件的网址。 那应该触发文件下载。 这就是我通常要做的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.