實(shí)現(xiàn)easyui的datagrid導(dǎo)出為excel的示例代碼
之前有介紹過如何實(shí)現(xiàn)easyui里datagrid內(nèi)容的打印,今天給大家介紹下如何實(shí)現(xiàn)datagrid內(nèi)容導(dǎo)出為excel文件。以下為代碼實(shí)現(xiàn):
export.js
function ChangeToTable(printDatagrid) {
var tableString = '<table cellspacing="0" class="pb">';
var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns對(duì)象
var columns = printDatagrid.datagrid("options").columns; // 得到columns對(duì)象
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>';
});
}
// 載入內(nèi)容
var rows = printDatagrid.datagrid("getRows"); // 這段代碼是獲取當(dāng)前頁的所有行
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為了防止前臺(tái)頁面內(nèi)容干擾,前臺(tái)頁面只留:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="export.aspx.cs" Inherits="newland.WebUI.export" ValidateRequest="false" %>
這句話,其他的全部刪除。
調(diào)用方法:
<a href="javascript:void(0);" onclick="Export('導(dǎo)出excel', $('#grid'));">導(dǎo)出</a>
以上就是小編為大家?guī)淼膶?shí)現(xiàn)easyui的datagrid導(dǎo)出為excel的示例代碼全部?jī)?nèi)容了,希望大家多多支持腳本之家~
- jQuery EasyUI API 中文文檔 - DataGrid數(shù)據(jù)表格
- Jquery下EasyUI組件中的DataGrid結(jié)果集清空方法
- jQuery easyui datagrid動(dòng)態(tài)查詢數(shù)據(jù)實(shí)例講解
- 擴(kuò)展easyui.datagrid,添加數(shù)據(jù)loading遮罩效果代碼
- jQuery EasyUI datagrid實(shí)現(xiàn)本地分頁的方法
- jQuery EasyUI之DataGrid使用實(shí)例詳解
- jQuery Easyui DataGrid點(diǎn)擊某個(gè)單元格即進(jìn)入編輯狀態(tài)焦點(diǎn)移開后保存數(shù)據(jù)
- 詳解EasyUi控件中的Datagrid
- jquery Easyui Datagrid實(shí)現(xiàn)批量操作(編輯,刪除,添加)
- EasyUI使用DataGrid實(shí)現(xiàn)動(dòng)態(tài)列數(shù)據(jù)綁定
相關(guān)文章
利用jQuery實(shí)現(xiàn)可輸入搜索文字的下拉框
jQuery實(shí)現(xiàn)點(diǎn)擊下拉框輸入框時(shí),自動(dòng)顯示下面的下拉列表,而且是根據(jù)輸入框中輸入的搜索添加,自動(dòng)在后臺(tái)查找,然后傳到前臺(tái),展現(xiàn)頁面2013-10-10
jquery jqPlot API 中文使用教程(非常強(qiáng)大的圖表工具)
這里貢獻(xiàn)上中文教程,基本上所有的api都很齊全,供有需要的童鞋們瞧瞧,更重要的是作為自己滴收藏2011-08-08
jquery通過select列表選擇框?qū)Ρ砀駭?shù)據(jù)進(jìn)行過濾示例
這篇文章主要介紹了jquery通過select列表選擇框?qū)Ρ砀駭?shù)據(jù)進(jìn)行過濾示例,需要的朋友可以參考下2014-05-05
jquery插件開發(fā)之實(shí)現(xiàn)md5插件
這篇文章主要介紹了jquery開發(fā)實(shí)現(xiàn)的md5插件,最后返回的是一串十進(jìn)制數(shù),在jquery1.9.2下測(cè)試通過,需要的朋友可以參考下2014-03-03
詳談jQuery unbind 刪除綁定事件 / 移除標(biāo)簽方法
下面小編就為大家?guī)硪黄斦刯Query unbind 刪除綁定事件 / 移除標(biāo)簽方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03
通過Jquery遍歷Json的兩種數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)代碼
在ajax交互中,我們從服務(wù)器端返回的數(shù)據(jù)類型有xml,html,script,json,jsonp,text,本文以json為例,講述了在前臺(tái)如何利用jquery遍歷json的兩種數(shù)據(jù)結(jié)構(gòu)2011-01-01
jquery插件tytabs.jquery.min.js實(shí)現(xiàn)漸變TAB選項(xiàng)卡效果
這篇文章主要介紹了jquery插件tytabs.jquery.min.js實(shí)現(xiàn)漸變TAB選項(xiàng)卡效果,實(shí)例分析了tytabs.jquery.min.js插件實(shí)現(xiàn)tab選項(xiàng)卡切換效果的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08

