投放本站广告请联系:
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那段代码,看一下,贴出来的代码最后少了一个“}”,是错误的哦