function btnExport_onclick() { var griddata = { rowscount: 0, rows: []};//提交的数据 var tempGridData = {};//临时数据 $.extend(tempGridData, $.data(grid[0], "datagrid").data);//获取临时数据 tempGridData.rowscount = tempGridData.rows.length;//获取临时数据行数 for (var i = 0; i < tempGridData.rowscount; i++) { var dataRow = {}; var tempRow = tempGridData.rows[i]; dataRow["申请数量"] = tempRow["ApplNum"]; dataRow["预购数量"] = tempRow["PreBuyNum"]; dataRow["实购数量"] = tempRow["BuyNum"]; dataRow["已入库"] = tempRow["IsCaiGou"]; dataRow["预购备注"] = tempRow["Remarks"]; dataRow["ISBN"] = tempRow["ISBN"]; dataRow["教材名称"] = tempRow["BookName"]; dataRow["作者"] = tempRow["Author"]; dataRow["出版社"] = tempRow["Press"]; griddata.rows.push(dataRow); } griddata.rowscount = tempGridData.rowscount; $("#exportGridData").val($.param(griddata));//赋值提交数据 $("#exportFileName").val( encodeURIComponent("采购单详细信息") ); $("#form2")[0].submit(); };
" />
导出 ReportJS.aspx 为空 ReportJS.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.IO; public partial class Manage_report_ReportJS : ManageBase { protected void Page_Load(object sender, EventArgs e) { DoExportAction(HttpContext.Current); } private void DoExportAction(HttpContext context) { //exportGridData:rowscount=27&rows[0][id]=2&rows[0][姓名]=关羽&rows[0][性别]=女&rows[0][手机]=1385545 //exportFileName:保存的文件名 try { StringWriter sw = new StringWriter(); Dictionary
RequestData = new Dictionary
(); DataTable dt = new DataTable(); string datagriid = Server.UrlDecode(Request["exportGridData"]); //获取列 foreach (string keyvalue in datagriid.Split('&')) { string[] keyvalueList = keyvalue.Split('='); RequestData.Add(keyvalueList[0], keyvalueList[1]); if (keyvalueList[0].Contains("rows[0]")) { int stratIndex = keyvalueList[0].LastIndexOf('[') + 1; dt.Columns.Add(keyvalueList[0].Substring(stratIndex).TrimEnd(']')); } } //获取行 for (var i = 0; i < base.GetInt(RequestData["rowscount"]).Value; i++) { DataRow row = dt.NewRow(); foreach (DataColumn col in dt.Columns) { string key = string.Format("rows[{0}][{1}]", i, col.ColumnName); row[col.ColumnName] = RequestData[key]; } dt.Rows.Add(row); } //输出列 System.Text.StringBuilder strColumn = new System.Text.StringBuilder(); for (var i = 0; i < dt.Columns.Count; i++) { if (i > 0) { strColumn.Append(","); } strColumn.Append(dt.Columns[i].ColumnName); } sw.WriteLine(strColumn.ToString());//打印列 foreach (DataRow row in dt.Rows) { System.Text.StringBuilder strRow = new System.Text.StringBuilder(); for (var i = 0; i < dt.Columns.Count; i++) { if (i > 0) { strRow.Append(","); } strRow.Append(row[dt.Columns[i].ColumnName]); } sw.WriteLine(strRow);//打印行 } sw.Close(); Response.AddHeader("Content-Disposition", "attachment; filename=" + Request["exportFileName"] + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"); Response.ContentType = "application/ms-excel"; Response.ContentEncoding = System.Text.Encoding.Default; Response.Write(sw); Response.End(); } catch (System.Threading.ThreadAbortException) { } catch (Exception ex) { base.WriteMessage(false, ex.Message); } } }