Extjs4.2纯前台导出Excel总结
前段时间做了两个项目,用到了Extjs4.2纯前台导出Excel,遇到很多的问题,从网上也找了很多资料,在这里总结一下,做一个记录:
使用方法:
1.下载extexcel文件包,这里可以下载http://download.csdn.net/detail/cui198711/8244017
(设置积分实属无奈:因自己太懒,csdn已没有积分了-。-!)
2.将该包导出项目中(不要随意改变包中的目录结构)
3.在需要导出数据的gridpanel下的dockedItems中引用Button即可,如
dockedItems: [
{
xtype: 'toolbar',
dock: 'top',
items: [
Ext.create('Ext.ux.exporter.Button', {
text: "导出 Excel"
})
]
}
]
这里有几个注意事项,也是我在项目中遇到的问题,需要特别注意:
1.包中的exportExcel.png图片为4个叠加的效果图,不能随意更换成一个图片,否则按钮放在上面的效果就没有了。
2.网上一般找的extexcel包是有bug的,如第一次导出是没问题的能打开,第二次导出的就打不开了,这个问题需要稍做修改:找到extexcel\exporter\excelFormatter\Workbook.js
在第75行 Ext.apply(this, config) 下面插入以下两句:
this.styles = [];
this.worksheets = [];
即可解决。
3.引用的Button位置必须在gridpanel下才可使用,否则会在component.is里报component为空的错,如果真有需要把Button放到gridpanel外面,也是可以的,当然需要做一些修改:
setComponent: function (component, config) {
this.component = component;
//this.store = !component.is ? component : component.getStore(); // only components or stores, if it doesn't respond to is method, it's a store
// 修改这里
if(component!=null){
this.store = !component.is ? component : component.getStore();
}
config.component = this.component;
config.store = this.store;
this.setDownloadify(config);
}
除此之外,需要在Button的容器渲染事件中,手动的给Button赋于component,这样就可以完美解决。
4.要导出的表名称(gridpanel的title)长度不能多于31个字符,也不能包含“\”、"/"、"?"、"*"、"["或"]"特殊字符,否则导出的Excel无法打开,会报错,原因是Excel的sheet页会把表名称
当sheet的名称来用,而sheet名称是有要求的
5.根据Button里构造函数中的这句话
self.setComponent(self.store || self.component || self.up("gridpanel") || self.up("treepanel"), config);
以为应该是支持treepanel的,但是根据我的测试如果是treepanel,在Worksheet.js中
buildRows: function () {
var rows = [];
// 如果是treepanel以下代码无法执行
this.store.each(function (record, index) {
rows.push(this.buildRow(record, index));
}, this);
return rows;
}
以上红色代码段是无法执行的,原因是因为TreeStore没有each方法。当然如果在这里修改一下让他执行应该也是可以导出的,因为时间原因没有修改,如果有需要的话自行修改吧。
以上就是我个人在使用Extjs4.2前台导出Excel过程中总结的经验,以备不时之需~~~~~~~
Extjs4.2纯前台导出Excel总结的更多相关文章
- 使用javascript纯前端导出excel
前言(感谢技术的分享者) 参考博客地址 github地址 由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls.xlsx ...
- 无服务端纯前台导出数据到Excel-JSExcelXML.js 使用指南
JSExcelXML 使用指南 先来个效果预览 a.前端显示 b.导出excel效果 表头部分 表尾部分 1.功能描述 JsExcelXml 采用js生成excel中可显示的xml格式文本,将输出文本 ...
- vue 纯前端导出 excel 表格
在开发后台管理系统的时候,很多地方都要用到导出excel 表格,比如将table中的数据导出到本地,那么实现这种需求往往有两种方案: 一.后端开发一个下载链接,前端将这个链接放到 a 标签的 href ...
- 6行代码实现纯js导出excel
// excel导出当前列表 function memberExport() { var oHtml = $('#list').html(); var excelHtml = '<html> ...
- 纯前端导出Excel表格
<html> <head> <p style="font-size: 20px;color: red;">使用a标签方式将json导出csv文件 ...
- js前端导出excel
此例子是利用html特性,纯前端导出excel,样式不好看,兼容主流浏览器. var tableid = jQuery(this).closest("div.tab-label-wrap&q ...
- html表格导出Excel的实例
1. 拼成出完整的HMTL的Table代码片段后,转成二进制byte[]类型并存入数据库中,供下载时调出来使用. System.Text.StringBuilder sb = new StringBu ...
- extjs4 前台导出grid数据 生成excel,数据量大后台无法接收到数据
最近做的一个web项目使用的是extsj4 框架,需要一个导出excel功能,通过extjs4 自带的导出方法实现.在前台生成excel的代码,form提交传递到后台输出.前台grid数据超过1000 ...
- 如何使用JavaScript实现纯前端读取和导出excel文件
js-xlsx 介绍 由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls.xlsx.ods(一种OpenOffice专 ...
随机推荐
- iOS富文本(三)深入使用Text Kit
在上一篇中介绍了Text Kit的三种基本组件的关系并且简单的实现了怎么使用这三种基本组件,本片将深入的去使用这三种基本组件. NSTextStorage NSTextStorage是NSMutabl ...
- UVa 1395 Slim Span【最小生成树】
题意:给出n个节点的图,求最大边减最小边尽量小的值的生成树 首先将边排序,然后枚举边的区间,判定在该区间内是否n个点连通,如果已经连通了,则构成一颗生成树, 则此时的苗条度是这个区间内最小的(和kru ...
- (转载)UITableView的详细讲解
NSIndexPath类型是用来获取用户选择的indexPath,在别的函数里面,若需要知道用户选择了哪个cell,用上它可以省事很多.不必再去建全局变量section和row. NSIndexPat ...
- I.MX6 Linux mipi配置数据合成
/*************************************************************************** * I.MX6 Linux mipi配置数据合 ...
- Android隐藏虚拟按键,关闭开机动画、开机声音
/*********************************************************************** * Android隐藏虚拟按键,关闭开机动画.开机声音 ...
- activiti 源码笔记之startProcess
rumtimeService.startProcessInstanceByXX方法将启动流程的任务委派给StartProcessInstanceCmd,此时会根据rumtimeService.star ...
- C++ 编写Windows service
最近实现一个windows server端守护进程启动服务功能(c++实现),遇到了一些问题,记录一下 1. 启动Service实现代码: int _tmain(int argc, TCHAR* ar ...
- 2016第20周四java基础概念
简单的说JDK=JRE+Java编译器.调试器.工具类库等:JRE=JVM(类似于jre目录下的bin)+必要运行的类库(类似于jre目录下的lib) JVM:Java Virtual Mechina ...
- 【转】WCF和ASP.NET Web API在应用上的选择
文章出处:http://www.cnblogs.com/shanyou/archive/2012/09/26/2704814.html 在最近发布的Visual Studio 2012及.NET 4. ...
- shell script入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...