ExtJS4 動(dòng)態(tài)生成的grid導(dǎo)出為excel示例
更新時(shí)間:2014年05月02日 10:01:14 作者:
解決了一個(gè)表格不能重復(fù)下載的小BUG,一個(gè)使用grid初始化發(fā)生的BUG,需要的朋友可以參考下
搜索了蠻久,找到一些例子,因?yàn)槲沂浅鯇W(xué)者的緣故大多不知道怎么使用。。
研究了一下那個(gè)源碼,搞到現(xiàn)在終于實(shí)現(xiàn)了基本的下載。解決了一個(gè)表格不能重復(fù)下載的小BUG,一個(gè)使用grid初始化發(fā)生的BUG
下面記錄一下步驟。說不定下次還有用
1.下載需要用到js代碼,我已經(jīng)上傳
2.在你的html文件中加入引用,路徑問題自己 注意下,下面是我的路徑
<script type="text/javascript" src="../export/export-all.js" ></script>;
3.在你要用到的JS代碼的Ext.onReady()的開始加上
Ext.Loader.setConfig({ enabled: true });
Ext.Loader.setPath('Ext.ux.exporter', '../export/exporter');
Ext.require([
'Ext.ux.exporter.Exporter'
]);
設(shè)置命名空間。。注意路徑
4.在代碼里面使用,在你需要下載功能的grid處合適的地方加入
xtype: 'exporterbutton',
// store: store
component: Ext.getCmp('gird_a')
這是兩種初始化excel的方式,一種用store初始化,使用store的fields和data,因?yàn)槲业膕tore中的fields名字是英文,導(dǎo)出來的列名是英文所以我沒有使用這種,而是直接用grid進(jìn)行初始化。
下面說下在別人的代碼基礎(chǔ)上我修改的地方
1.在exporter.js第40行,改成了
var columns = Ext.Array.filter(grid.columnManager.columns,
原來的代碼在第一個(gè)參數(shù)那里是grid.columns,后來我發(fā)現(xiàn)動(dòng)態(tài)生成的grid在reconfigure之后columns放在columnManager.columns里,所以這么改
2.在workbook.js中77.78行,加了兩句話
this.styles=[];
this.worksheets=[];
以上2行代碼進(jìn)行一些初始化,否則excel每次生成因?yàn)闆]有清空之前的數(shù)據(jù)導(dǎo)致格式錯(cuò)誤
經(jīng)過以上的簡單修改已經(jīng)可以對(duì)一個(gè)grid隨意導(dǎo)出,并且支持對(duì)定制字段的表格導(dǎo)出,即導(dǎo)出表格顯示的列
效果圖在這里:
研究了一下那個(gè)源碼,搞到現(xiàn)在終于實(shí)現(xiàn)了基本的下載。解決了一個(gè)表格不能重復(fù)下載的小BUG,一個(gè)使用grid初始化發(fā)生的BUG
下面記錄一下步驟。說不定下次還有用
1.下載需要用到js代碼,我已經(jīng)上傳
2.在你的html文件中加入引用,路徑問題自己 注意下,下面是我的路徑
復(fù)制代碼 代碼如下:
<script type="text/javascript" src="../export/export-all.js" ></script>;
3.在你要用到的JS代碼的Ext.onReady()的開始加上
復(fù)制代碼 代碼如下:
Ext.Loader.setConfig({ enabled: true });
Ext.Loader.setPath('Ext.ux.exporter', '../export/exporter');
Ext.require([
'Ext.ux.exporter.Exporter'
]);
設(shè)置命名空間。。注意路徑
4.在代碼里面使用,在你需要下載功能的grid處合適的地方加入
復(fù)制代碼 代碼如下:
xtype: 'exporterbutton',
// store: store
component: Ext.getCmp('gird_a')
這是兩種初始化excel的方式,一種用store初始化,使用store的fields和data,因?yàn)槲业膕tore中的fields名字是英文,導(dǎo)出來的列名是英文所以我沒有使用這種,而是直接用grid進(jìn)行初始化。
下面說下在別人的代碼基礎(chǔ)上我修改的地方
1.在exporter.js第40行,改成了
復(fù)制代碼 代碼如下:
var columns = Ext.Array.filter(grid.columnManager.columns,
原來的代碼在第一個(gè)參數(shù)那里是grid.columns,后來我發(fā)現(xiàn)動(dòng)態(tài)生成的grid在reconfigure之后columns放在columnManager.columns里,所以這么改
2.在workbook.js中77.78行,加了兩句話
復(fù)制代碼 代碼如下:
this.styles=[];
this.worksheets=[];
以上2行代碼進(jìn)行一些初始化,否則excel每次生成因?yàn)闆]有清空之前的數(shù)據(jù)導(dǎo)致格式錯(cuò)誤
經(jīng)過以上的簡單修改已經(jīng)可以對(duì)一個(gè)grid隨意導(dǎo)出,并且支持對(duì)定制字段的表格導(dǎo)出,即導(dǎo)出表格顯示的列
效果圖在這里:


您可能感興趣的文章:
- Extjs4 類的定義和擴(kuò)展實(shí)例
- Extjs4 Treegrid 使用心得分享(經(jīng)驗(yàn)篇)
- Extjs4實(shí)現(xiàn)兩個(gè)GridPanel之間數(shù)據(jù)拖拽功能具體方法
- ExtJS4中的requires使用方法示例介紹
- ExtJS4中使用mixins實(shí)現(xiàn)多繼承示例
- extjs4 treepanel動(dòng)態(tài)改變行高度示例
- ExtJS4給Combobox設(shè)置列表中的默認(rèn)值示例
- javascript中JSON對(duì)象與JSON字符串相互轉(zhuǎn)換實(shí)例
- 淺談JSON.parse()和JSON.stringify()
- Extjs4如何處理后臺(tái)json數(shù)據(jù)中日期和時(shí)間
相關(guān)文章
ext中store.load跟store.reload的區(qū)別示例介紹
這篇文章主要介紹了ext中store.load跟store.reload的區(qū)別,需要的朋友可以參考下2014-06-06解決Extjs 4 Panel作為Window組件的子組件時(shí)出現(xiàn)雙重邊框問題
Extjs的Panel和Window等組件在默認(rèn)情況下是帶邊框的,通常情況下,單獨(dú)使用沒有什么關(guān)系,但是將Panel作為Window組件的子組件時(shí)就會(huì)出現(xiàn)雙重邊框的現(xiàn)象于是想辦法將兩重邊框去掉,變成單邊框,感興趣的朋友可以了解下2013-01-01ExtJS Grid使用SimpleStore、多選框的方法
ExtJS 中Grid使用SimpleStore、多選框的方法,需要的朋友可以參考下。2009-11-11Extjs 繼承Ext.data.Store不起作用原因分析及解決
有關(guān)Extjs 繼承Ext.data.Store 不起作用的原因有很多種,接下來與大家分享下,本人遇到的,這個(gè)Store寫出來之后 是不會(huì)起到作用的,感興趣的朋友可以看下詳細(xì)的原因及解決方法2013-04-04extJs 下拉框聯(lián)動(dòng)實(shí)現(xiàn)代碼
extJs 下拉框聯(lián)動(dòng)實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-04-04Extjs 4.x 得到form CheckBox 復(fù)選框的值
CheckBox(復(fù)選框)主要用來接收用戶選擇的選項(xiàng),那么如何通過Extjs 4.x 得到form CheckBox的值呢?下面有個(gè)不錯(cuò)的方法,大家值得一看2014-05-05