我正在使用带有导出的jqgrid来超越我的Razor代码,如下所示:
//Set and activate navigations
jQuery("#analyticGridPager").jqGrid('navGrid', '#analyticGridPager', { add: false, edit: false, del: false, search: false },
{}, {}, {}, { multipleSearch: false, overlay: false, width: 480 }).jqGrid('navButtonAdd',
'#analyticGridPager',
{
caption: " Export to Excel ",
buttonicon: "ui-icon-bookmark",
onClickButton: function () {
exportExcel($(this));
}, position: "last"
});
function exportExcel() {
grid = $("#analyticGrid")
var mya = new Array();
mya = grid.getDataIDs(); // Get All IDs
var data = grid.getRowData(mya[0]); // Get First row to get the labels
var colNames = new Array();
var ii = 0;
for (var i in data) { colNames[ii++] = i; } // capture col names
var html = "";
for (k = 0; k < colNames.length; k++) {
html = html + colNames[k] + "t";
// output each Column as tab delimited
}
html = html + "n"; // Output header with end of line
for (i = 0; i < mya.length; i++) {
data = grid.getRowData(mya[i]); // get each row
for (j = 0; j < colNames.length; j++) {
html = html + data[colNames[j]] + "t"; // output each Row as tab delimited
}
html = html + "n"; // output each row with end of line
}
html = html + "n"; // end of line at the end
//alert(html);
var params = { "htmlMarkup": html }
var str = jQuery.param(params);
window.open("/Analytics/CsvExport?" + str, '_blank')
}
现在在控制器上,我已经写了一个生成csv文件而不是excel文件的方法。我需要生成excel文件扩展名。
public ActionResult CsvExport()
{
string htmlMarkup = Request.QueryString["htmlMarkup"].ToString();
byte[] contents = Encoding.ASCII.GetBytes(htmlMarkup);
return File(contents, "application/vnd.ms-excel");
}
请纠正我做错了什么。
请替换为以下内容,它将进行测试。
同时更新你的web.config。
更新控制器操作
string htmlMarkup=Request.QueryString["htmlMarkup"].ToString();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
byte[] contents = Encoding.ASCII.GetBytes(htmlMarkup);
Response.End();
return File(contents, "application/excel");
更新您的网络配置
<httpRuntime targetFramework="4.5" requestValidationMode="2.0" maxUrlLength="10999" relaxedUrlToFileSystemMapping="true" maxQueryStringLength="2097151" enable="true" executionTimeout="60000" maxRequestLength="30000000" />