Vincent
BlogJava
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
posts - 5, comments - 7, trackbacks - 0
<
2025年5月
>
日
一
二
三
四
五
六
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
5
6
7
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(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中文技術(shù)文摘
JSF中文技術(shù)文摘
JSF中文技術(shù)文摘
Webservice技術(shù)學(xué)習(xí)專題
搜索
積分與排名
積分 - 55552
排名 - 927
最新評(píng)論
1.?re: POI實(shí)現(xiàn)Excel插入圖片[未登錄]
能不能在頁腳或者頁眉插入圖片呢
--lsy
2.?re: C# Sample code to talk to a printer using SNMP to get its status.
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--KCC
3.?re: C# Sample code to talk to a printer using SNMP to get its status.
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--phaneendra
4.?re: java報(bào)表JXL和POI打印設(shè)置[未登錄]
aaaaaaaaaaaaaa
--aaa
5.?re: POI實(shí)現(xiàn)Excel插入圖片
非常好 ! 謝謝!
--estc
閱讀排行榜
1.?C# Sample code to talk to a printer using SNMP to get its status. (6533)
2.?Cisco常用OID(2885)
3.?OID(1526)
4.?Communicating with SNMP using C# - The Very Beginning (1504)
5.?OID(700)
評(píng)論排行榜
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基金下面的一個(gè)開源項(xiàng)目,在[url]http://www.apache.org/dyn/closer.cgi/jakarta/poi/[/url] 可以下載到poi的包
下載以后把解壓得到的文件加到web-inf下面的lib目錄下面就可以使用了。
下面先介紹一下生成excel文件要用的類:
HSSFWorkbook 用于創(chuàng)建excel文件
HSSFSheet 用于創(chuàng)建excel的書冊(cè)
HSSFRow 用于創(chuàng)建一行
HSSFCell 用于創(chuàng)建一個(gè)單元格
HSSFCellStyle 用于創(chuàng)建一個(gè)單元格的格式
HSSFFont 用于創(chuàng)建一個(gè)單元格的字體格式
下面用本人寫的一個(gè)通用的工具類作為例子說明一下生成文件的方法
(這里只列出部分代碼,詳細(xì)的請(qǐng)看附件的源碼,如果要使用附件的代碼,請(qǐng)保留原創(chuàng)人的名字)
public
String createFile(List
<
Hashtable
>
hlist)
//
根據(jù)傳入的參數(shù)讀取數(shù)據(jù),這里用了范型指定參數(shù)是hashtable類型的list
{
HSSFWorkbook wb
=
new
HSSFWorkbook();
//
創(chuàng)建excel文件
for
(
int
hcount
=
0
;hcount
<
hlist.size();hcount
++
)
{
Hashtable ha
=
hlist.get(hcount);
//
獲取第hcount個(gè)元素
HSSFSheet sheettemp
=
wb.createSheet();
wb.setSheetName(hcount,(String)ha.get(
"
name
"
),(
short
)
1
);
//
新建一個(gè)sheet
HSSFRow rowtitle
=
sheettemp.createRow((
short
)
0
);
//
添加表頭
HSSFCell celltitle
=
rowtitle.createCell((
short
)
0
);
celltitle.setEncoding(HSSFCell.ENCODING_UTF_16);
//
設(shè)置字體編碼
celltitle.setCellValue((String)ha.get(
"
title
"
));
//
設(shè)置表頭內(nèi)容
rowtitle
=
sheettemp.createRow((
short
)
1
);
//
新增一行用于存放表頭內(nèi)容
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
);
//
獲得第一行第一個(gè)單元格的引用
setTitleStyle(wb,celltitle);
//
設(shè)置表頭格式
HSSFRow rowfield
=
sheettemp.createRow((
short
)
1
);
//
新增一行用于存放列頭內(nèi)容
for
(
int
i
=
0
;i
<
fields.length;i
++
)
//
根據(jù)獲取到的列頭數(shù)據(jù),循環(huán)設(shè)置列頭的內(nèi)容
{
HSSFCell cellfield
=
rowfield.createCell((
short
)i);
cellfield.setEncoding(HSSFCell.ENCODING_UTF_16);
cellfield.setCellValue(fields[i]);
setFieldStyle(wb,cellfield);
//
設(shè)置列頭格式
int
xx
=
cellfield.getStringCellValue().length();
sheettemp.setColumnWidth((
short
) i,(
short
)(
600
*
xx));
}
List listtemp
=
(List)ha.get(
"
body
"
);
//
獲取表格內(nèi)容
Object[] rowtemp
=
null
;
int
count
=
0
;
for
(Iterator it
=
listtemp.iterator();it.hasNext();)
//
迭代生成數(shù)據(jù)
{
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;
}
最后說明一下附件的各個(gè)類的作用:
Report.java 接口類,所有的獲取數(shù)據(jù)的類必須實(shí)現(xiàn)這個(gè)接口,以便生成文件時(shí)統(tǒng)一管理;
ExcelContent.java 實(shí)現(xiàn)了Report接口,負(fù)責(zé)獲取數(shù)據(jù)并組裝到hashtable;
ReportTool.java 根據(jù)傳入的參數(shù)生成excel文件,并返回生成的文件名;
CreateReport.java 被外部程序調(diào)用,負(fù)責(zé)獲取數(shù)據(jù)和把數(shù)據(jù)傳遞給ReportTool,最后生成excel文件,返回生成的文件名給調(diào)用者。
posted on 2008-11-25 16:34
Vincent-chen
閱讀(508)
評(píng)論(0)
編輯
收藏
所屬分類:
POI
、
Print
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
操作word的解決方案
POI 將數(shù)據(jù)導(dǎo)出到Word的實(shí)例
使用POI來處理Excel和Word文件格式
使用poi生成excel文件
一步一步使用POI做java報(bào)表
一步一步使用POI做java報(bào)表--打印設(shè)置篇
使用POI生成Excel文檔并設(shè)置打印樣式
使用POI向Excel里插入圖片
POI實(shí)現(xiàn)Excel插入圖片
Powered by:
BlogJava
Copyright ©2025 Vincent-chen
主站蜘蛛池模板:
日本中文字幕免费看
|
老司机福利在线免费观看
|
在线观看免费无码专区
|
亚洲成年人啊啊aa在线观看
|
精品免费AV一区二区三区
|
四虎亚洲国产成人久久精品
|
午夜在线亚洲男人午在线
|
免费一级一片一毛片
|
一级做a爰片性色毛片免费网站
|
国产黄色一级毛片亚洲黄片大全
|
一本到卡二卡三卡免费高
|
亚洲欧洲精品无码AV
|
免费av一区二区三区
|
久久综合亚洲色一区二区三区
|
国产高清不卡免费在线
|
91在线亚洲综合在线
|
四虎影视在线永久免费观看
|
亚洲GV天堂无码男同在线观看
|
免费国产成人午夜电影
|
中文字幕成人免费高清在线视频
|
亚洲成在人线av
|
福利免费观看午夜体检区
|
亚洲AV无码成人精品区狼人影院
|
国产精品亚洲综合一区
|
久久久久成人片免费观看蜜芽
|
成人毛片18女人毛片免费96
|
五月婷婷免费视频
|
久久香蕉国产线看观看亚洲片
|
6080午夜一级毛片免费看
|
亚洲人精品亚洲人成在线
|
亚洲一区二区三区在线视频
|
一级特黄aa毛片免费观看
|
亚洲日本VA午夜在线电影
|
亚洲一区二区三区乱码A
|
99久在线国内在线播放免费观看
|
亚洲自国产拍揄拍
|
中文字幕在亚洲第一在线
|
黄在线观看www免费看
|
免费看黄网站在线看
|
亚洲黄色免费网站
|
亚洲精品A在线观看
|