gpt4 book ai didi

asp.net-mvc - 如何在 Asp.Net MVC 中导出到 excel?

转载 作者:行者123 更新时间:2023-12-04 23:05:08 26 4
gpt4 key购买 nike

脚本

function PostExportValues(meter_id, range_type_id, start_date, end_date, returnUrl) {
var meter = $("#meter_selection").val()[0];
$.ajax({
url: '@Url.Action("GridExportToExcel", "Widget")',
type: 'POST',
data: { MeterType: meter_id, DateRangeType: range_type_id, StartDate: start_date, EndDate: end_date, returnUrl: returnUrl, Meter: meter },
success: function () {
alert("Success.");
},
error: function () {
alert("Error!");
}
}); //end ajax
} //end PostExportValues

Controller
public void GridExportToExcel(int MeterType, int DateRangeType, DateTime? StartDate, DateTime? EndDate, string returnUrl, int Meter)
{
Customers customer = CustomerManager.GetCustomer(WebSecurity.CurrentUserId);
//if start date is null, then set it to another early date.
DateTime startDate = DateTimeManager.GetStartDate(StartDate, DateRangeType, customer.sno);
//if end date is null, then set to date time now.
DateTime endDate = DateTimeManager.GetEndDate(EndDate, StartDate);

IQueryable<MeterReadingsForChart> meterReadings = MeterReadingManager.GetCustomerMeterReadings(customer.sno, MeterType, Meter, startDate, endDate, DateTimeManager.GetTimeIntervalTypeById(DateRangeType)).AsQueryable(); // MeterReadingManager.GetCustomerTotalMeterReadings(customer.sno, MeterType, startDate, endDate, DateTimeManager.GetTimeIntervalTypeById(DateRangeType)).AsQueryable();
var table = MeterReadingManager.GetMeterReadingsPivot(meterReadings, MeterType);

//table output some thing like following:
//T1 T2 T3
//10 20 25
//13 23 21
//15 26 27

var grid = new GridView();
grid.DataSource = table;
grid.DataBind();

Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");

Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);

grid.RenderControl(htw);

Response.Write(sw.ToString());
Response.End();

//return View("Index");
}

方法 GridExportToExcel正在工作,脚本警报消息是 Success. ,但没有 Action (什么也没有发生)。

我错过了什么?我希望 excel 文件会自动下载。

谢谢...

最佳答案

您不能在 ajax 查询上调用文件下载,因为浏览器不会触发文件下载。不要使用 ajax 调用您的 Controller 方法,您可以使用像

window.open("url/Exporttoexcel?id=");

添加参数。

关于asp.net-mvc - 如何在 Asp.Net MVC 中导出到 excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14316415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com