Vincent
BlogJava
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
posts - 5, comments - 7, trackbacks - 0
<
2025年7月
>
日
一
二
三
四
五
六
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
8
9
常用鏈接
我的隨筆
我的評(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í)專題
搜索
積分與排名
積分 - 55902
排名 - 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. (6572)
2.?Cisco常用OID(2892)
3.?OID(1533)
4.?Communicating with SNMP using C# - The Very Beginning (1521)
5.?OID(711)
評(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
閱讀(514)
評(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级免费高清黄色片
|
国产免费卡一卡三卡乱码
|
特级毛片全部免费播放a一级
|
亚洲国产精品久久久久久
|
免费在线观看黄网
|
男男AV纯肉无码免费播放无码
|
3344在线看片免费
|
久久精品国产亚洲AV天海翼
|
亚洲人成网国产最新在线
|
亚洲第一中文字幕
|
亚洲精品白浆高清久久久久久
|
免费看小12萝裸体视频国产
|
在线v片免费观看视频
|
99久久99久久免费精品小说
|
成人免费无码H在线观看不卡
|
国产成人高清亚洲一区91
|
亚洲三级高清免费
|
亚洲午夜一区二区电影院
|
麻豆亚洲AV永久无码精品久久
|
国产美女亚洲精品久久久综合
|
日本免费一区尤物
|
午夜私人影院免费体验区
|
日本阿v免费费视频完整版
|
亚在线观看免费视频入口
|
日韩免费高清播放器
|
男女一边桶一边摸一边脱视频免费
|
亚洲人成网站日本片
|
久久久久亚洲AV无码永不
|
久久精品亚洲综合一品
|
亚洲国产精品成人久久
|
国产亚洲情侣一区二区无码AV
|
波多野结衣免费视频观看
|
国产成人免费全部网站
|
国产免费资源高清小视频在线观看
|
免费电视剧在线观看
|
国产精品免费观看久久
|
毛片a级毛片免费观看免下载
|
亚洲狠狠色丁香婷婷综合
|
亚洲人成网站免费播放
|
亚洲精品无码久久久久A片苍井空
|
亚洲欧洲无卡二区视頻
|