我正在尝试让我的页面Data.aspx返回一个html表,但我希望该表格为excel格式。到目前为止,这是我的代码。
在Data.aspx中加载:
Response.Clear()
Select Case lstrCmd Case "summary" Response.Write(Summary()) Response.Cache.SetCacheability(HttpCacheability.NoCache) Case "export" Response.ContentType = "application/ms-excel" Response.AddHeader("Content-Disposition", "attachment;filename=" & _ mstrProjectName & ".xls") Response.Write(SummaryExport()) End Select Response.End()
所以添加标题是我困惑的地方。这是我的软件使用的另一个方面,但我不确定它是否会起作用..
调用它的jquery使用的是ajax:
function btnSubmitExport_Click() { var compID = $("#ddlCompanies").val(); var projectID = $("#ddlProjects").val(); var startDate = $("#txtStartDate").val(); var endDate = $("#txtEndDate").val(); var compName = $("#ddlCompanies :selected").text(); var projectName = $("#ddlProjects :selected").text();
$("#content").html("<div class='loading'>loading...</div>");
$.ajax({
url: "Data.aspx",
data: {
CompanyID: compID,
ProjectID: projectID,
CompanyName: compName,
ProjectName: projectName,
StartDate: startDate,
EndDate: endDate,
Cmd: "export"
},
success: function(html) {
$("#content").html(html);
},
error: function(response) {
alert(response);
}
});
}
所以,通常情况下,当我请求这些数据时,我只是将生成的html放到我的default.aspx页面上的“content”div中..但是我希望html是一个excel文件!
任何关于此的提示或想法都会有所帮助。
我在其他地方看到了同样的问题,但没有任何答案可以帮助我使用现有的代码..
答案 0 :(得分:1)
如果你的html文本中包含表格标签,那么简单地将其保存为XLS扩展名,而Microsoft Excel会像魅力一样打开它!而且正如我所见,您希望用户下载该文件,而不是在页面中显示其内容。您应该直接在ASPX页面上重定向页面(不使用JQuery)。我建议您在开发人员工具中使用网络监视器来查看正在发生的事情。
干杯
答案 1 :(得分:0)
Normaly你需要使用这个标题
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "filename=excelfile.xls"
在此特定页面中根据需要打印所有输出,即可。 研究这些标题,你会没事的。