Vincent
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
posts - 5, comments - 7, trackbacks - 0
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
snmp(4)
随笔档案
2009年6月 (5)
文章分类
JavaScript(8)
JDBC(1)
JfreeChart(1)
JSF(13)
JXL(2)
POI(9)
Print(8)
richfaces(4)
SQL(1)
Swing
tomcat
XML(5)
文章档案
2008年12月 (2)
2008年11月 (42)
jsf
JSF中文技术文摘
JSF中文技术文摘
JSF中文技术文摘
Webservice技术学习专题
搜索
积分与排名
积分 - 54949
排名 - 929
最新评论
1. re: POI实现Excel插入图片[未登录]
能不能在页脚或者页眉插入图片呢
--lsy
2. re: C# Sample code to talk to a printer using SNMP to get its status.
评论内容较长,点击标题查看
--KCC
3. re: C# Sample code to talk to a printer using SNMP to get its status.
评论内容较长,点击标题查看
--phaneendra
4. re: java报表JXL和POI打印设置[未登录]
aaaaaaaaaaaaaa
--aaa
5. re: POI实现Excel插入图片
非常好 ! 谢谢!
--estc
阅读排行榜
1. C# Sample code to talk to a printer using SNMP to get its status. (6466)
2. Cisco常用OID(2868)
3. OID(1512)
4. Communicating with SNMP using C# - The Very Beginning (1474)
5. OID(692)
评论排行榜
1. C# Sample code to talk to a printer using SNMP to get its status. (2)
2. Communicating with SNMP using C# - The Very Beginning (1)
3. OID(0)
4. OID(0)
5. Cisco常用OID(0)
使用poi生成excel文件
poi是apache基金下面的一个开源项目,在[url]http://www.apache.org/dyn/closer.cgi/jakarta/poi/[/url] 可以下载到poi的包
下载以后把解压得到的文件加到web-inf下面的lib目录下面就可以使用了。
下面先介绍一下生成excel文件要用的类:
HSSFWorkbook 用于创建excel文件
HSSFSheet 用于创建excel的书册
HSSFRow 用于创建一行
HSSFCell 用于创建一个单元格
HSSFCellStyle 用于创建一个单元格的格式
HSSFFont 用于创建一个单元格的字体格式
下面用本人写的一个通用的工具类作为例子说明一下生成文件的方法
(这里只列出部分代码,详细的请看附件的源码,如果要使用附件的代码,请保留原创人的名字)
public
String createFile(List
<
Hashtable
>
hlist)
//
根据传入的参数读取数据,这里用了范型指定参数是hashtable类型的list
{
HSSFWorkbook wb
=
new
HSSFWorkbook();
//
创建excel文件
for
(
int
hcount
=
0
;hcount
<
hlist.size();hcount
++
)
{
Hashtable ha
=
hlist.get(hcount);
//
获取第hcount个元素
HSSFSheet sheettemp
=
wb.createSheet();
wb.setSheetName(hcount,(String)ha.get(
"
name
"
),(
short
)
1
);
//
新建一个sheet
HSSFRow rowtitle
=
sheettemp.createRow((
short
)
0
);
//
添加表头
HSSFCell celltitle
=
rowtitle.createCell((
short
)
0
);
celltitle.setEncoding(HSSFCell.ENCODING_UTF_16);
//
设置字体编码
celltitle.setCellValue((String)ha.get(
"
title
"
));
//
设置表头内容
rowtitle
=
sheettemp.createRow((
short
)
1
);
//
新增一行用于存放表头内容
String[] fields
=
(String[])ha.get(
"
field
"
);
//
获取列头
sheettemp.addMergedRegion(
new
Region(
0
,(
short
)
0
,
0
,(
short
)(fields.length
-
1
)));
//
合并第一行
rowtitle
=
sheettemp.getRow(
0
);
//
获得第一行的引用
celltitle
=
rowtitle.getCell((
short
)
0
);
//
获得第一行第一个单元格的引用
setTitleStyle(wb,celltitle);
//
设置表头格式
HSSFRow rowfield
=
sheettemp.createRow((
short
)
1
);
//
新增一行用于存放列头内容
for
(
int
i
=
0
;i
<
fields.length;i
++
)
//
根据获取到的列头数据,循环设置列头的内容
{
HSSFCell cellfield
=
rowfield.createCell((
short
)i);
cellfield.setEncoding(HSSFCell.ENCODING_UTF_16);
cellfield.setCellValue(fields[i]);
setFieldStyle(wb,cellfield);
//
设置列头格式
int
xx
=
cellfield.getStringCellValue().length();
sheettemp.setColumnWidth((
short
) i,(
short
)(
600
*
xx));
}
List listtemp
=
(List)ha.get(
"
body
"
);
//
获取表格内容
Object[] rowtemp
=
null
;
int
count
=
0
;
for
(Iterator it
=
listtemp.iterator();it.hasNext();)
//
迭代生成数据
{
rowtemp
=
(Object[])it.next();
HSSFRow rowbody
=
sheettemp.createRow((
short
)(count
+
2
));
for
(
int
i
=
0
;i
<
rowtemp.length;i
++
)
{
HSSFCell cellbody
=
rowbody.createCell((
short
)i);
cellbody.setEncoding(HSSFCell.ENCODING_UTF_16);
cellbody.setCellValue((String)rowtemp[i]);
}
count
++
;
}
}
FileOutputStream fileOut;
try
{
fileOut
=
new
FileOutputStream(setFilepath());
//
生成文件
try
{
wb.write(fileOut);
}
catch
(IOException e)
{
System.out.println(e.toString());
}
try
{
fileOut.close();
}
catch
(IOException e)
{
System.out.println(e.toString());
}
}
catch
(FileNotFoundException e)
{
System.out.println(e.toString());
}
return
filename;
}
最后说明一下附件的各个类的作用:
Report.java 接口类,所有的获取数据的类必须实现这个接口,以便生成文件时统一管理;
ExcelContent.java 实现了Report接口,负责获取数据并组装到hashtable;
ReportTool.java 根据传入的参数生成excel文件,并返回生成的文件名;
CreateReport.java 被外部程序调用,负责获取数据和把数据传递给ReportTool,最后生成excel文件,返回生成的文件名给调用者。
posted on 2008-11-25 16:34
Vincent-chen
阅读(498)
评论(0)
编辑
收藏
所属分类:
POI
、
Print
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
操作word的解决方案
POI 将数据导出到Word的实例
使用POI来处理Excel和Word文件格式
使用poi生成excel文件
一步一步使用POI做java报表
一步一步使用POI做java报表--打印设置篇
使用POI生成Excel文档并设置打印样式
使用POI向Excel里插入图片
POI实现Excel插入图片