我正在使用 Infragistics Excel 导出框架通过 ajax post 将数据导出到 excel
这是客户端的代码
$.ajax({
type: 'post',
url: '../Common/ExcelExporter',
data: {
tbname: parameter, pageNumber: _pageNumber, pageSize: _pageSize
, exportType: true, exportFormat: true
},
success: function (res, status, xhr) {
alert(JSON.stringify(xhr));
}
});
和控制器端的代码
public void ExcelExporter(string tbname,int pageNumber, int pageSize, bool exportType, bool exportFormat)
{
pageNumber++;
IEnumerable exportdata = dbList.getClass(tbname);
bool exportAllPages = exportType;
if (exportdata == null) {
var obj = Activator.CreateInstance(Assembly.GetExecutingAssembly().GetType(assemblyName + ".Models." + tbname));
if (exportAllPages)
{
exportdata = (from e in dbList.getClass(tbname).AsQueryable() select e).AsQueryable();
}
else
{
exportdata = (from e in dbList.getClass(tbname).AsQueryable() select e).AsQueryable().Skip(pageNumber).Take(pageSize);
}
WorkbookFormat excelFormat;
if (exportFormat)
excelFormat = WorkbookFormat.Excel2007;
else
excelFormat = WorkbookFormat.Excel97To2003;
ExcelExportingModel exportModel = new ExcelExportingModel(excelFormat);
exportModel.PopulateExcelWorkbook(exportdata);
SendForDownload(exportModel.ExcelWorkbook, excelFormat);
}
[SecuritySafeCritical]
private void SendForDownload(Workbook document, WorkbookFormat excelFormat)
{
string documentFileNameRoot;
documentFileNameRoot = string.Format("Document.{0}", excelFormat == WorkbookFormat.Excel97To2003 ? "xls" : "xlsx");
Response.Clear();
Response.AppendHeader("content-disposition", "attachment; filename=" + documentFileNameRoot);
Response.ContentType = "application/octet-stream";
document.SetCurrentFormat(excelFormat);
document.Save(Response.OutputStream);
Response.End();
}
代码正在执行,没有任何错误,但没有输出。没有文件正在下载。当我检查控制器的响应时,我得到了这个
输出:
{
"readyState":4,
"responseText":"PK\u0002\u\<?xml version=\"1.0\" encoding=\"utf-8\"?>Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\"><Relationship Type= \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\" Target=\"docProps/app.xml\" Id=\"rId1\" /><Relationship Type=\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\"Target=\"docProps/core.xml\" Id=\"rId2\" /><Relationship Type= \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\"Target=\"xl/workbook.xml\" Id=\"rId3\" />/Relationships>PK\u[Content_Types].xmlPK\u0005\u0000",
"status":200,
"statusText":"OK"
}
我已经参考了这个链接的代码
请帮助解决这个问题