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专 ...
随机推荐
- Javascript学习-闭包
看的这篇 http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html 各种专业文献上的"闭包" ...
- linux下gitflow辅助工具安装和使用
gitflow是一个确保nvie推荐的git branch分支策略最佳模型得到有效实施的辅助工具.它作为git的一个子命令而存在. http://nvie.com/posts/a-successful ...
- Qt之等待提示框(QMovie)
简述 关于gif的使用在实际项目中我用的并不多,因为我感觉瑕疵挺多的,很多时候锯齿比较严重,当然与图存在很大的关系. 关于生成gif的方法可以提供一个网站preloaders,基本是可以满足需求的. ...
- UIScrollView 期本使用方法
UIScrollView 1. contentOffset 默认CGPointZero,用来设置scrollView的滚动偏移量. // 设置scrollView的滚动偏移量 scrollView ...
- iso中AutoLayout和Autoresizing Mask的区别
•在iOS6之前,关于屏幕旋转的适配和iPhone,iPad屏幕的自动适配,基本都是由Autoresizing Mask来完成的.但是随着大家对iOS App的要求越来越高,以及今后可能出现的多种屏幕 ...
- Dom文档模型
文档对象模型 通过 JavaScript,您可以重构整个 HTML 文档.您可以添加.移除.改变或重排页面上的项目.要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所 ...
- java线程join的意思(转自http://zjj1211.blog_51cto_com)
Join,单词本事就是连接的意思. 先贴出几段代码猜猜结果. <1> public static int Main() { Alpha oAlpha = new Alpha(); Thre ...
- java UncaughtExceptionHandler 处理线程意外中止
本文转自:http://peirenlei.iteye.com/blog/305079 Thread的run方法是不抛出任何检查型异常(checked exception)的,但是它自身却可能因为一个 ...
- 【转】Ubuntu搭建Eclipse+JDK+SDK的Android
原文网址:http://blog.csdn.net/ithomer/article/details/6960989 今晚重装Ubuntu系统,重新安装了一套eclipse+jdk+SDK的Androi ...
- unity, 在保持场景根节点Transform不变且Hierarchy结构不变的前提下整体旋转场景
比如我们摆出下面结构: 其Hierarchy如下: 其中根节点road的Transform是如下干净的原始状态: 现在想保持road的Hierarchy和Transform都不变的情况下将road旋转 ...