基于ExtJS4实现浏览器端导出Excel功能[初版]

谈到导出Excel功能,大多数程序猿都会联想到POI、JXL等服务端导出组件。但是在某些特殊的情况下,不便或者无法在服务端实现导出,这个时候就需要采用非常规的浏览器端导出。
近期,支援的项目中就遇到了上述“特殊”情况,无法在服务端利用导出组件实现导出Excel。具体应用场景是:某一功能下查询的数据是通过访问百度API获取的对象数组,数据没有存储至本地数据库,用户需要把通过跨域访问百度API获取的相关数据以Excel文件的形式导出。
综合考虑后,决定采用“data URI方式”实现浏览器端导出Excel功能。更多的浏览器端导出方法可以参考:web导出excel文件的几种方法
废话不多说,上代码:
阅读余下全文 »

[Java]静态导入的使用介绍

从Java 5开始引入了静态导入(import static),通过静态导入可以在当前类导入其他类的静态变量或静态方法,调用时无需加上变量和方法的类名,可以直接使用。
可以导入单个的静态变量或方法,也可以通过 * 号,一次性导入类中的全部静态变量和方法。

先来看一个不使用静态导入的例子:

使用静态导入后:

通过对比,可以看出使用静态导入避免了每次使用静态变量PI都需要带上类名,因此静态导入的主要其目是为了减少字符输入量
阅读余下全文 »

ExtJS插件详解及开发实践

上个周五,本人在组内做了一次关于ExtJS插件的组内分享,反响良好,在此把分享的内容贴出来,希望能够帮助大家。
本次培训的内容是:ExtJS插件详解及开发实践
主要包括以下几点:
1.插件的相关定义、特点
介绍什么是插件?具有哪些特点?与扩展组件的区别是什么?
2.插件的生命周期
通过详细介绍组件的生命周期来了解插件的生命周期。
3.插件的开发实践
通过具体的插件开发实例,介绍开发的步骤、重点等技巧。
ExtJS插件的定义及其特点:
定义:
插件是用于向已有组件提供附加功能的类。
特点:
1.插件的使用并不是直接初始化插件类的一个对象,而是使用该组件的plugins配置选项将插件附加到这个组件上。
2.在ExtJS中使用插件时,根据需要提供的附加功能,多个插件可以被附加到同一个组件上。这意味着附加功能可以被分解,且仅在需要时使用,来提高应用程序的性能。
3.插件应该以一种与其他插件不冲突的方式写入,否则它们将不能在一个插件中同时使用。
4.使用插件的一个优势是,插件不仅可以被附加的组件所使用,也可以被所有从该组件衍生的子类所使用。
阅读余下全文 »

ExtJS中实现Grid的单元格内容提示

上一篇文章[ExtJS中实现Grid的单元格内容换行]中已经提到,如果单元格内容超出单元格的长度,框架会把超出长度的那部分内容以省略号代替显示。我们可以利用上一篇文章中的扩展组件,使内容换行显示,但是这样会使每行的高度不一致,外观体验比较糟糕(换行显示一般应用于单元格内容不是非常多,且每行的内容长度大体一致)。大部分情况下,我们都是使用框架提供的QuickTip来展示单元格的详细内容。
同样,此扩展功能可以写成一个扩展组件,这样可以不用每次使用都需要配置相同代码的renderer配置项。代码如下:

阅读余下全文 »

ExtJS中实现Grid的单元格内容换行

很多时候,ExtJS中的Gird单元格内容会超出单元格的长度,此时框架会默认把超出单元格长度的“额外”内容截掉,并以省略号代替。
效果如下图所示:
column_default
项目中,需要把上述情况以换行显示来代替。由于换行显示的应用场景较多,最终本人利用扩展组件的方式来实现。
扩展组件代码如下:

阅读余下全文 »