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
主站蜘蛛池模板:
亚洲日韩精品A∨片无码
|
亚洲av女电影网
|
国产日韩在线视频免费播放
|
中文字幕亚洲综合精品一区
|
亚洲无码视频在线
|
亚洲精品成人网站在线观看
|
亚洲熟妇成人精品一区
|
久久亚洲国产午夜精品理论片
|
免费国产黄网站在线观看视频
|
亚洲国产精品无码久久九九大片
|
亚洲精品国产字幕久久不卡
|
国产精品久久久久影院免费
|
aa级一级天堂片免费观看
|
久久不见久久见免费视频7
|
亚洲综合中文字幕无线码
|
亚洲精品国产成人专区
|
亚洲日韩一页精品发布
|
亚洲M码 欧洲S码SSS222
|
一级毛片**不卡免费播
|
a毛看片免费观看视频
|
黄色一级毛片免费
|
在线观看亚洲免费
|
亚洲另类激情综合偷自拍图
|
免费一级一片一毛片
|
免费国产成人高清视频网站
|
99久久免费观看
|
无码专区AAAAAA免费视频
|
最新亚洲精品国偷自产在线
|
亚洲中文久久精品无码1
|
亚洲激情黄色小说
|
中文字幕亚洲日韩无线码
|
又黄又爽又成人免费视频
|
免费人成大片在线观看播放电影
|
亚洲精品私拍国产福利在线
|
久久精品国产精品亚洲艾
|
亚洲av无码一区二区乱子伦as
|
在线视频免费国产成人
|
免费观看男人免费桶女人视频
|
亚洲av午夜电影在线观看
|
亚洲av无码专区首页
|
亚洲爆乳无码一区二区三区
|