jsp和excel的数据交换-----我的项目实践
前段时间,客户要求我们的可以实现与ms excel的数据交换,可以把系统中的数据导入导出到excel.我们的系统是一个用java做的b/s结构的mis系统.为了解决这个
问题,我找到了一个专门操作excel的开源项目jxl,并找到了一篇介绍如何使用jxl开发包的好文章:
--https://www-900.cn.ibm.com/developerworks/cn/java/l-javaexcel/#2
根据客户的要求,用jxl实现了如下功能:
1:在客户端读取excel文件的数据;
2:把系统数据导出到excel模板文件中.
对于第一个问题,我开始考虑的是写一个客户端运行的applet小程序.后来才明白,java为了安全,applet是不能随便访问客户端的文件系统的(:(低级错误!不要鄙视我).
于是就想到了先把excel文件上传到服务器,然后用jxl来解析数据.怎么上传文件我就不说了,只要做过(sun企业级应用的首选)的人应该都知道吧.主要讲一下如何解析.由于上传的数据都是
有固定格式的,所以我们做了一个excel模板,客户必须按照模板的格式填写数据,程序才可以正常的解析.
解析其实也是很简单的,但在做的过程中发现,excel中的时间格式数据需要特别注意:如果按照文本格式读取时间格式数据,读取的时间是错误的(大家可以试验一下).
为了解决读取时间错误的问题,我仔细研究了一下jxl的api,呵呵,居然发现了一个好东东:datecell类,用它的getdate方法可以得到一个cell的date对象.不过由于
国际化的需要,这个date对象得到的是格林尼治时间,你需要处理一下.
至于导出,其实和导入差不多,无非就是先访问一下,把得到的信息写入excel文件然后下载.
下面是我写的导入导出周生产计划的java类,其中开始的几行注释掉的部分分别是下载和上传的试例.
(其实模板也很关键,下面的程序是基于模板而写的,不过相信大家看了下面的程序,也可以知道模板的样子了,需要重点说明的是,在模板中,填写时间的字段必须设置成时
间格式-----在excel中点击右键菜单轻松搞定)
/*
* create date: 2004-11-9 10:20
* create by: 李春雷
* purpose:和周计划相关的导入导出操作
*/
/**********************周生产下载示例*****************
excelzjhxm myzjh = new excelzjhxm();
myzjh.download("mydatazjh","20041018003");
****************************************************/
/**********************周计划上传示例*****************
excelzjhxm test = new excelzjhxm();
test.upload("zscjhtest");
if(test.getflag()){
system.out.println("begin test--------------");
arraylist a = test.getdata();
for(int i = 0;i<a.size();i++){
excelzjhxm.datazjhxm mydata =(excelzjhxm.datazjhxm)a.get(i);
system.out.println(mydata.xh+" "+mydata.xmmc+" "+mydata.gznr +" "+mydata.sftd +" "+mydata.tdfw +" "+mydata.jhlrflbh +" "+mydata.jhlrbh +" "+mydata.zxdwmc +" "+mydata.phdwmc +" "+mydata.dbrmc +" "+mydata.jhkssj+" "+mydata.jhwcsj +" "+mydata.bz);
}
上一篇: PS为图片增加矢量马赛克
推荐阅读
-
jsp和excel的数据交换-----我的项目实践
-
Python和Excel表格之间不得不说的故事,我有模块,你有数据嘛?
-
荐 我把Github上最牛b的Java教程和实战项目整合成了一个PDF文档
-
我的软件研发和项目管理的图书
-
我的软件研发和项目管理的图书
-
熟练掌握CSS+DIV,能在记事本下熟练写静态页,做过10多个静态网站项目,只懂一点PHP语法和MySQL语法,剩下的全都不懂,只自学了半个月,用什么软件,和什么框架能让我立刻参加工作,能让我这个水平也能写出PHP程序?
-
技术自查-对框架的理解和项目实践
-
那位好心人能把实践项目中关于zend framework的auth和acl发给小弟我一份
-
XSS注入我也不怕不怕啦--PHP从框架层面屏蔽XSS的思考和实践
-
jsp和excel的数据交换-----我的项目实践