首页 > 编程 > JavaScript > 正文

实现easyui的datagrid导出为excel的示例代码

2019-11-19 18:59:38
字体:
来源:转载
供稿:网友

之前有介绍过如何实现easyui里datagrid内容的打印,今天给大家介绍下如何实现datagrid内容导出为excel文件。以下为代码实现:

export.js

function ChangeToTable(printDatagrid) {  var tableString = '<table cellspacing="0" class="pb">';  var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns对象  var columns = printDatagrid.datagrid("options").columns;  // 得到columns对象  var nameList = new Array();  // 载入title  if (typeof columns != 'undefined' && columns != '') {    $(columns).each(function (index) {      tableString += '/n<tr>';      if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {        for (var i = 0; i < frozenColumns[index].length; ++i) {          if (!frozenColumns[index][i].hidden) {            tableString += '/n<th width="' + frozenColumns[index][i].width + '"';            if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) {              tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"';            }            if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) {              tableString += ' colspan="' + frozenColumns[index][i].colspan + '"';            }            if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') {              nameList.push(frozenColumns[index][i]);            }            tableString += '>' + frozenColumns[0][i].title + '</th>';          }        }      }      for (var i = 0; i < columns[index].length; ++i) {        if (!columns[index][i].hidden) {          tableString += '/n<th width="' + columns[index][i].width + '"';          if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) {            tableString += ' rowspan="' + columns[index][i].rowspan + '"';          }          if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) {            tableString += ' colspan="' + columns[index][i].colspan + '"';          }          if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') {            nameList.push(columns[index][i]);          }          tableString += '>' + columns[index][i].title + '</th>';        }      }      tableString += '/n</tr>';    });  }  // 载入内容  var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行  for (var i = 0; i < rows.length; ++i) {    tableString += '/n<tr>';    for (var j = 0; j < nameList.length; ++j) {      var e = nameList[j].field.lastIndexOf('_0');      tableString += '/n<td';      if (nameList[j].align != 'undefined' && nameList[j].align != '') {        tableString += ' style="text-align:' + nameList[j].align + ';"';      }      tableString += '>';      if (e + 2 == nameList[j].field.length) {        tableString += rows[i][nameList[j].field.substring(0, e)];      }      else        tableString += rows[i][nameList[j].field];      tableString += '</td>';    }    tableString += '/n</tr>';  }  tableString += '/n</table>';  return tableString;}function Export(strXlsName, exportGrid) {  var f = $('<form action="/export.aspx" method="post" id="fm1"></form>');  var i = $('<input type="hidden" id="txtContent" name="txtContent" />');  var l = $('<input type="hidden" id="txtName" name="txtName" />');  i.val(ChangeToTable(exportGrid));  i.appendTo(f);  l.val(strXlsName);  l.appendTo(f);  f.appendTo(document.body).submit();  document.body.removeChild(f);}

export.aspx

protected void Page_Load(object sender, EventArgs e)    {      Response.Clear();      Response.Buffer = true;      Response.Charset = "utf-8";      Response.ContentEncoding = System.Text.Encoding.UTF8;      Response.AppendHeader("content-disposition", "attachment;filename=/"" + HttpUtility.HtmlEncode(Request["txtName"]??DateTime.Now.ToString("yyyyMMdd")) + ".xls/"");      Response.ContentType = "Application/ms-excel";      Response.Write("<html>/n<head>/n");      Response.Write("<style type=/"text/css/">/n.pb{font-size:13px;border-collapse:collapse;} "+              "/n.pb th{font-weight:bold;text-align:center;border:0.5pt solid windowtext;padding:2px;} " +              "/n.pb td{border:0.5pt solid windowtext;padding:2px;}/n</style>/n</head>/n");      Response.Write("<body>/n" + Request["txtContent"] + "/n</body>/n</html>");      Response.Flush();      Response.End();     }

其中export.aspx为了防止前台页面内容干扰,前台页面只留:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="export.aspx.cs" Inherits="newland.WebUI.export" ValidateRequest="false" %> 

这句话,其他的全部删除。

调用方法:

<a href="javascript:void(0);" onclick="Export('导出excel', $('#grid'));">导出</a> 

以上就是小编为大家带来的实现easyui的datagrid导出为excel的示例代码全部内容了,希望大家多多支持武林网~

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表