ExtJS4 動態產生的grid匯出為excel(純前台)

來源:互聯網
上載者:User

搜尋了蠻久,找到一些例子,因為我是初學者的緣故大多不知道怎麼使用。。



研究了一下那個源碼,搞到現在終於實現了基本的下載。。解決了一個表格不能重複下載的小BUG,一個使用grid初始化發生的BUG


下面記錄一下步驟。。說不定下次還有用


1.下載需要用到js代碼,我已經上傳

http://download.csdn.net/detail/hu8471479/7281703


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'    ]);

設定命名空間。。注意路徑


4.在代碼裡面使用,在你需要下載功能的grid處合適的地方加入

  xtype: 'exporterbutton',         // store: storecomponent: Ext.getCmp('gird_a')

這是兩種初始化excel的方式,一種用store初始化,使用store的fields和data,因為我的store中的fields名字是英文,匯出來的列名是英文所以我沒有使用這種,而是直接用grid進行初始化。


下面說下在別人的代碼基礎上我修改的地方


1.在exporter.js第40行,改成了

  var columns = Ext.Array.filter(grid.columnManager.columns,
原來的代碼在第一個參數那裡是grid.columns,後來我發現動態產生的grid在reconfigure之後columns放在columnManager.columns裡,所以這麼改


2.在workbook.js中77.78行,加了兩句話

this.styles=[];this.worksheets=[];

以上2行代碼進行一些初始化,否則excel每次產生因為沒有清空之前的資料導致格式錯誤



經過以上的簡單修改已經可以對一個grid隨意匯出,並且支援對定製欄位的表格匯出,即匯出表格顯示的列


在這裡:



定製欄位產生的程式碼已經改進,速度提升了N倍,見我前面的文章

有問題可以留言,共同探討 ,http://blog.csdn.net/decoderworld

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.