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

网友投稿 329 2023-06-30


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

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

export.js

function ChangeToTable(printDatagrid) {

var tableString = '

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

if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {

for (var i = 0; i < frozenColumns[index].length; ++i) {

if (!frozenColumns[index][i].hidden) {

tableString += '\n

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 + '

}

}

}

forznPlhtx (var i = 0; i < columns[index].length; ++i) {

if (!columns[index][i].hidden) {

tableString += '\n

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 + '

}

}

tableString += '\n

});

}

// 载入内容

var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行

for (var i = 0; i < rows.length; ++i) {

tableString += '\n

for (var j = 0; j < nameList.length; ++j) {

var e = nameList[j].field.lastIndexOf('_0');

tableString += '\n

if (nameList[j].align != 'undefined' && nameList[j].align != '') {

tableString += ' style="text-align:' + nameList[j].align + ';"';

}

tableString += '&ghttp://t;';

if (e + 2 == nameList[j].field.length) {

tableString += rows[i][nameList[j].field.substring(0, e)];

}

else

tableString += rows[i][nameList[j].field];

tableString += '

}

tableString += '\n

}

tableString += '\n

return tableString;

}

function Export(strXlsName, exportGrid) {

var fhttp:// = $('

var i = $('');

var l = $('');

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("\n

Response.Write("\n\n");

Response.Write("

Response.Flush();

Response.End();

}

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

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

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

调用方法:

导出


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈MVC+EF easyui dataGrid 动态加载分页表格
下一篇:Java中单例模式详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~