java excel报表文件_JAVA导出excel报表

1、使用POI

A)下载地址http://poi.apache.org/download.html

B)使用方式

1、准备一个简单的excel文档(静态的数据都先填写上去),放入到项目src路径下中

2、在action中读取excel文档,并创建一个excel文档对象

String filename = PropertyUtil.getPropertyValue(“配置文件路径”)+”文件名”;

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(filename));

3、获取每一个分页的对象文档中默认有三个sheet,默认第一个下角标为0。HSSFSheet sheet0 = wb.getSheetAt(0);//获取第一个sheet。1,2表示后面两个

4、动态加入数据

1、创建一个行

Row row = sheet0.createRow(“第几行”);

2、在这一行创建 一个单元格

Cell cell = row.createCell(第几个);

3、往里头填数据

cell.setCellValue(“我的数据”);

5、特效

1、单元格合并

Sheet0.addMergedRegion(new CellRangeAddress(四个参数分别表示行,列坐标));//合并这里面的范围到一个单元格中

2、单元格样式

Cell.setCellStyle(一个样式对象CellStyle类型);

CellStyle style = wb.createCellStyle();

Style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);

Style.setBorderTop(CellStyle.BORDER_THIN);等等

//还有很多可以查看POI文档

C)好坏

1、好处:控制力强,是我们熟悉的java代码,不过需要熟悉第三方API

2、缺点:代码量比较大

2、使用excel模板方式

1、制作你想要的excel文档,列宽度、字体等设置好。(作为模板使用)

2、将excel另存为:->其他格式->XML 电子表格2003 (*.xml) 文件名记:1.xls

3、使用文本编辑器打开,1.xls。你可以发现类似于xml的标签

%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>-1){

filename=java.net.URLEncoder.encode(filename,"UTF-8");

}else{

filename=new String(filename.getBytes("UTF-8"),"ISO8859-1");

}

response.setHeader("Content-disposition","attachment; filename="+filename+".xls");

%>

1996-10-14T23:33:28Z

2006-10-19T23:03:49Z

11.5606

9300

15135

120

120

False

False

~等等

我们需要在动态的row哪里添加我们的数据

" x:FullColumns="1"

x:FullRows="1">

主板名称

项目名称

产品线

产品类型

项目经理

项目类别

项目状态

重要程度

启动时间

计划完成

实际完成

创建者

创建时间

待定

待定

待定

C)、好坏

1、坏处:xml标签学习代价很高,不易上手,这样的jsp页面不容易看懂。比如动态合并单元格就很麻烦,你得需要XML标签知识才能更改。

2、好处:不用java代码,只要在填充数据的地方使用itertor来遍历你的数据即可,所以对于简单的数据量,样式很少的可以使用这个

3、使用html基本table方式

Excel档案呈现方式

名称

型号

经理

状态

平台

描述

时间点

项目进展

2月第5周

${project.foreignType }

产品描述

【生成定型】1212121

${content}

注意一点:就是我的content是使用富文本的,所以他有很多

标签,这个导致生成的excel文档中content内容不再同一个单元格里面。所以,我们需要在保存富文本的时候,把

可以导致换行的string给替换掉

如:content = content.replace("", "");

当表格中出现rowspan字样要小心了,它会出现空行,这时候需要在span那个tr后面补全td,并且把下一行的tr给去掉。tr从第三行再加上。

【重要】:两个边框问题

1、设置表格内的边框: border="1"

2、表格之外的边框:见代码红色部分;代码红色显示不出来。。

一个是:

xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">

另一个是:

参考资料:

http://poi.apache.org/

http://www.cnblogs.com/cannel/archive/2011/06/30/2094189.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值