----------------------------------------------------------------------------------------------
[版权申明:本文系作者原创,转载请注明出处]
作者:朱培 ID:sdksdk0
--------------------------------------------------------------------------------------------
今天要分享的功能是一键上传excel文件,然后显示在页面中,以及将网页上的数据已excel文件的形式下载下来。使用的是Apache的POI,本文分享的实例是SSH框架完成的一个项目中的一个功能模块之一,使用了Maven,所以相关的jar包都贴出了maven的相关jar坐标。因为这个项目设计了很多ssh的配置,这里本文就不在一一列出,只写了关键的代码,文末提供源码下载,希望可以帮助到有需要的开发者。
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“可怜的模糊实现”。
Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。
网址是http://poi.apache.org/,我们可以通过添加maven倚赖的方式下载,poi的坐标是:
页面效果如下:
(这里的数据我是随便写的,仅作为参考数据,不是真实数据)

通过点击页面上的批量导入按钮,可以实现界面无刷新一次性导入写好的数据。我们先excel中准备好数据:注意的是在excel中的数字都要改为文本格式的,不能是“常规",否则导入会失败的。
jsp页面代码:
需要先导入:jquery.ocupload-1.1.2.js
然后再页面中给你的按钮的id添加upload的方法。 (以下片段在文末项目中的位置是:/BOS/src/main/webapp/WEB-INF/pages/base/region.jsp)
这个我转到的是Action中:
这里的话我就是加了pinyin4j来将汉字转为拼音,这样的话做的就是简码了;
在pom.xml中添加maven依赖:(以下片段在文末项目中的位置是:/BOS/pom.xml)
在Action中处理:(以下片段在文末项目中的位置是:/BOS/src/main/java/cn/tf/bos/web/action/bc/RegionAction.java)
汉字转换为拼音的工具类为:(以下片段在文末项目中的位置是:/BOS/src/main/java/cn/tf/bos/utils/PinYin4jUtils.java)
在struts.xml中配置返回:(以下片段在文末项目中的位置是:/BOS/src/main/resources/struts.xml)
这样的话就全部实现了上传的功能了。
接下来说一下下载的功能:
例如我们要将这个页面中的内容变为excel文件下载下来。
在下载的jsp页面中:
点击按钮触发这个下载的函数,我们有一个函数:点击后跳转到action中。(以下片段在文末项目中的位置是:/BOS/src/main/webapp/WEB-INF/pages/base/subarea.jsp)
在action中:(以下片段在文末项目中的位置是:/BOS/src/main/java/cn/tf/bos/web/action/bc/SubareaAction.java)
在struts.xml中配置:
这样我们就可以把数据下载出来了:
总结:文本使用的都是非常经典的技术来实现了文件一键上传、汉字转拼音、文件上传、文件下载的功能,具有非常好的实际意义,属于开发者必备技能之一。