当前位置:主页 > 游艇会官网主页正文

游艇会官网主页:用POI将Mysql数据导入到Excel中去

05月07日作者:黑曼巴


在我们实际的开拓中,体现层的办理规划虽然有多样,然则IE浏览器已成为最多人应用的浏览器,由于大年夜家都用Windows。在企业办公系统中,经常有客户这样子要求:你要把我们的报表直接游艇会官网主页用Excel打开。或者是:我们已经习惯用Excel打印。这样子假如用.net开拓是没有问题的,.net用来进行这些数据导入导出支持的都是很好,假如你应用的是SQL Server数据库那就更方便了,笔者也曾体会到.net开拓这些功能的方便性.然则有j2ee这个比.net更有出路的开放式的开拓情况,难道我为了办理打印的要求去另写客户真个控件?或者在办事器端应用本地代码?第一种规划的问题是关键数据的处置惩罚无意偶尔候不能在客户端做,第2种规划的问题是就义了代码的可移植性和稳定性。假如让客户端只认真处置惩罚天生好的报表,那将是一种诱人的选择。

Apache的Jakata项目的POI子项目,目标是处置惩罚ole2工具。今朝对照成熟的是HSSF接口,处置惩罚MS Excel(97-2002)工具。它不象我们仅仅是用csv天生的没有款式的可以由Excel转换的器械,而是真正的Excel工具,你可以节制一些属性如sheet,cell等等。这是一个年轻的项目,以是象HDF这样直接支持Word工具的好器械仍旧在设计中。其它支持word款式的纯java规划还有itext,不过也是仍在奋斗中。然则HSSF已经成熟到能够和足够我们应用了。别的,无锡永中Office的实现规划也是纯java的办理规划,不过那也是完全商业的产品,并不是公开代码项目。着实,从开拓历史的角度讲,在80年代中期starOffice的原作者在德国成立了StarOffice suite公司,然后到1999年夏天starOffice被sun收购,再到2000年6月starOffice5.2的宣布;并且从starOffice6.0开始,starOffice建立在OpenOffice的api的根基上,这个公开代码的office项目已经进行了很长的光阴。虽然那是由C++写的,然则POI的代码部分也是由openOffice悛改来的。以是,应该对POI游艇会官网主页充溢足够的信心。海内已经有部分公司在他们的办公自动化等Web项目中应用poi了,如日恒的ioffice,海泰的HTOffice等。

java当初把核心处置惩罚设成Unicode,带来的好处是另代码适应了多说话情况。然而因为老外的英语只有26个字母,有些环境下,一些法度榜样员用8位的byte处置惩罚,一不小心就去掉落了CJK的高位。或者是因为习气在法度榜样中采纳硬编码,还有多种缘故原由,使得许多java利用在CJK的处置惩罚上很烦恼。还好在POI HSSF中斟酌到这个问题,可以设置encoding为双字节。

POI可以到www.apache.org下载到。编译好的jar主要有这样4个:poi包,poi Browser包,poi hdf包,poi hssf例程包。实际运行时,必要有poi包就可以了。假如用Jakarta ant编译和运行,下载apache Jakarta POI的release中的src包,它里面已经为你天生好了build文件了。只要运行ant就可以了(ant 的安装和应用在此不说了)。假如是用Jbuilder 运行,请在新建的项目中加入poi包。以Jbuilder6为例,选择Tools菜单项的config libraries...选项,新建一个lib。在弹出的菜单中选择poi包,如这个jakarta-poi-1.5.1-final-20020820.jar,把poi添加到jbuilder中。然后,右键点击你的项目,在project的properties菜单中path的required Libraries中,点add,添加刚才加入到jbuilder中的poi到你现在的项目中。假如你仅仅是为了认识POI hssf的应用,可以直接看POI的samples包中的源代码,并且运行它。hssf的各类工具都有例程的先容。hssf供给的例程在org.apache.poi.hssf.usermodel.examples包中,共有14个,天生的目标xls都是workbook.xls。假如你想看更多的例程,可以参考hssf的Junit test cases,在poi的包的源代码中有。hssf都有测试代码。

首先,到http://apache.justdn.org/jakarta/poi/release/bin/上去下载POI,登录到该网址今后,选择血色区域的poi-bin-2.5.1-final-20040804.zip来下载.

下载今后解压,解压目录为

在Eclipse中设置对poi-bin-2.5.1-final-20040804.jar的库引用.

在Eclipse中新建一个名字叫POIExcel的Java工程,右键POIExcel项目的项目名游艇会官网主页,选择Build Path,再选择Add External Archives,然后找到poi-bin-2.5.1-final-20040804.jar这个包将其引进到工程中来.

Excel 布局

HSSFWorkbook excell 文档工具先容

HSSFSheet excell的表单

HSSFRow excell的行

HSSFCell excell的格子单元

HSSFFont excell字体

HSSFName 名称

HSSFDataFormat 日期款式

帮助操作包括

HSSFDateUtil 日期

HSSFPrintSe游艇会官网主页tup 打印

HSSFErrorConstants 差错信息表

将数据导出到Excel中的实例

1. 创建一个空缺的Excel文件

我们创建一个最通俗的Java利用法度榜样即可,法度榜样代码如下:

HSSFWorkbook wb=new HSSFWorkbook();

FileOutputStream fileout = new FileOutputStream("C:\\test.xls");

wb.write(fileout);

fileout.close();

FileOutputStream属于JDK的数据流工具,经由过程它来将一个名为test.xls文件创建在C盘根目录下,运行该法度榜样后可以看到在C盘上的根目录上多了一个Excel文件.

假如将法度榜样中的FileOutputStream("C:\\test.xls")的参数改为"test.xls",则文件就会创建在该项目的根目录下.

2. 往Excel的单元格中写入信息

POI把Excel分化成几个工具,自顶向下的关系是:事情薄(HSSFWorkbook)->表格(HSSFSheet)->表格行(HSSFRow)->单元格(HSSFCell).将数据库中表的数据导入到Excel中,首先我们要将数据库中的表的数据查询出来,这里我们经由过程Hibernate来将数据库中addressbook_table表的数据查询出来.然后经由过程轮回将表中的数据导入到Excel中去.

HSSFWorkbook wb=new HSSFWorkbook();

HSSFSheet sheet=wb.createSheet("new sheet");

try {

//经由过程Hibernate来查询addressbook_table表中的数据,将其存储在List中

Transaction tx = session.beginTransaction();

org.hibernate.Query query= session.createQuery("from AddressbookTable");

List list = query.list();

tx.commit();

int k =0;

//创建表格,创建表格行和单元格,将数据库中表的字段存储在单元格中.

for(Iterator it=list.iterator();it.hasNext();){

AddressbookTable user =(AddressbookTable)it.next();

HSSFRow row=sheet.createRow((short)k);

row.createCell((short)0).setCellV游艇会官网主页alue(user.getId());

row.createCell((short)1).setCellValue(user.getName());

row.createCell((short)2).setCellValue(user.getAddress());

row.createCell((short)3).setCellValue(user.getPhone());

k++;

}

FileOutputStream fileout = new FileOutputStream("C:\\test.xls");

wb.write(fileout);

fileout.close();

log.error("Successful!!");

} catch (HibernateException e) {

log.error("Insert Exception!");

e.printStackTrace();

}

最近关注

热点内容

更多