投放本站广告请联系:
extjscn#126.com
ExtJs Grid导出到Excel(修正版)
以下的几个问题我都已经整理和修改:
1、没有考虑到含有序号和选择框的grid,
2、utf8转换bug.
3、宽度的bug
4、不支持ie6、ie7和Safari
修改后的代码见附件的gridToExcel.js.zip
注:我的文件编码都是utf8格式的(no bom),需要其它格式的请自行修改。
使用方法更简单,不需要定义linkbutton,直接使用标准的button
new Ext.Button({ text: '导出到Excel', handle: function() { var vExportContent = grid.getExcelXml(); if (Ext.isIE6 || Ext.isIE7 || Ext.isSafari || Ext.isSafari2 || Ext.isSafari3) { if (! Ext.fly('frmDummy')) { var frm = document.createElement('form'); frm.id = 'frmDummy'; frm.name = id; frm.className = 'x-hidden'; document.body.appendChild(frm); } Ext.Ajax.request({ url: '/exportexcel.php', method: 'POST', form: Ext.fly('frmDummy'), callback: function(o, s, r) { //alert(r.responseText); }, isUpload: true, params: {exportContent: vExportContent} }) } else { document.location = 'data:application/vnd.ms-excel;base64,' + Base64.encode(vExportContent); } });
以上以php为例,其它语言方法相同
exportexcel.php
<?php header("Pragma: public"); header("Expires: 0"); // set expiration time header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header('Content-type: application/vnd.ms-excel'); header("Content-Disposition:attachment;filename=export"); echo $_REQUEST['exportContent']; ?>
修改: peacock
原文: http://www.dojochina.com/index.php?q=node/1254
英文原版: http://extjs.com/forum/showthread.php?t=32400&highlight=excel
附件 | 大小 |
---|---|
gridToExcel.zip | 3 千字节 |
- 要发表评论,请先登录
评论
Ext.Button错误
Ext.Button那段代码,看一下,贴出来的代码最后少了一个“}”,是错误的哦