POI设置EXCEL单元格格式为文本Word文件下载.docx
- 文档编号:17065432
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:15
- 大小:231.42KB
POI设置EXCEL单元格格式为文本Word文件下载.docx
《POI设置EXCEL单元格格式为文本Word文件下载.docx》由会员分享,可在线阅读,更多相关《POI设置EXCEL单元格格式为文本Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
tb
Cachetable();
9.
(j
+
1);
10.
("
JavaCrazyer"
);
1.
北京"
xxx"
yy"
123"
"
what
are
you
doing?
who
you?
Oh
sure!
One"
two"
11.
three"
12.
four"
13.
不明白"
14.
(tb);
15.
}
16.
return
cacheList;
17.
18.
19.
/**
20.
创建整个Excel表
21.
@throws
SQLException
22.
23.
24.
void
createExcelSheet()
throws
SQLException{
25.
createTableHeader();
26.
int
rowIndex=1;
27.
28.
list=getDate();
29.
30.
for(int
j=0;
j<
j++){
31.
String>
listRead=new
32.
i=1;
i<
=columNumber;
i++){
33.
(i).getDevIp());
34.
(i).getSrcaddr());
35.
(i).getDstaddr());
36.
(i).getNexthop());
37.
(i).getInput());
38.
(i).getOutput());
39.
(i).getDpkts());
40.
(i).getDoctets());
41.
(i).getSstart());
42.
(i).getProt());
43.
(i).getTos());
44.
(i).getSrcas());
45.
(i).getDstas());
46.
(i).getPduversion());
47.
(rowIndex+"
48.
49.
createTableRow(listRead,(short)rowIndex);
50.
rowIndex++;
51.
52.
53.
54.
55.
导出表格
56.
@param
sheet
57.
os
58.
IOException
59.
60.
exportExcel(HSSFSheet
sheet,OutputStream
os)
61.
{
62.
(true);
63.
HSSFFooter
footer
64.
Page
()
of
65.
());
66.
(os);
67.
}
68.
69.
static
main(String[]
args)
70.
String
fileName
f:
\\世界五百强企业名次表.xls"
;
71.
FileOutputStream
fos
null;
72.
try
73.
ExcelOut
pd
ExcelOut();
74.
75.
FileOutputStream(fileName);
76.
(demoSheet,fos);
77.
(null,
表格已成功导出到
:
+fileName);
78.
catch
(Exception
e)
79.
表格导出犯错,错误信息
:
+e+"
\n错误缘故可能是表格已经打开。
80.
81.
finally
82.
83.
84.
85.
86.
87.
88.
89.}
当于100行
*
*@return
*/
publicList<
getDate(){
List<
cacheList=newArrayList<
for(intj=0;
j<
300;
j++){
Cachetabletb=newCachetable();
(j+1);
("
whatareyoudoing?
whoareyou?
Ohsure!
(tb);
}
returncacheList;
/**
*创建整个Excel表
*@throwsSQLException
*/
publicvoidcreateExcelSheet()throwsSQLException{
createTableHeader();
introwIndex=1;
list=getDate();
for(intj=0;
j++){
listRead=newArrayList<
for(inti=1;
i++){
(i).getDevIp());
(i).getSrcaddr());
(i).getDstaddr());
(i).getNexthop());
(i).getInput());
(i).getOutput());
(i).getDpkts());
(i).getDoctets());
(i).getSstart());
(i).getProt());
(i).getTos());
(i).getSrcas());
(i).getDstas());
(i).getPduversion());
(rowIndex+"
createTableRow(listRead,(short)rowIndex);
rowIndex++;
*导出表格
*@paramsheet
*@paramos
*@throwsIOException
publicvoidexportExcel(HSSFSheetsheet,OutputStreamos)throwsIOException
{
(true);
HSSFFooterfooter=();
Page"
+()+"
of"
+
());
(os);
}
publicstaticvoidmain(String[]args){
StringfileName="
FileOutputStreamfos=null;
try{
ExcelOutpd=newExcelOut();
();
fos=newFileOutputStream(fileName);
(demoSheet,fos);
(null,"
表格已成功导出到:
"
}catch(Exceptione){
表格导出犯错,错误信息:
}finally{
}catch(Exceptione){
}
说明:
1)有关数据库连接,假设是操作到数据库的话,在遍历数据库时用getDate那个方式遍历就可以够够够够啦,那么插入的数据就不是定值了,而是数据库中的值哦,具体操作数据库的步骤,我不用说,你明白
2)有关涉及更改EXCEL的CELL格式为字符串,如图一样情形下大伙儿导出的EXCEL表格CELL格式一样是常规的
那个问题,估量已经不止一两个朋友在网上问过,我至今没有看到一个中意的答案,通常大伙儿都是想到既然是设置CELL格式确信是通过然后插入数据再导出,诚然这种方式是对的,事实上不能起到任何作用,因为那个方式确实是EXCEL默许的格式,写不写都一样(好多同窗都不明白吧),再写出我的解决方案之前请大伙儿参考下一段文字
第一段:
Excel的单元格格式
图中的数据有数值、货币、时刻、日期、文本等格式。
这些数据格式在POI中的HSSFDataFormat类里都有相应的概念。
HSSFDataFormat是HSSF子项目里面定义的一个类。
类HSSFDataFormat允许用户新建数据格式类型。
HSSFDataFormat类包含静态方法staticgetBuiltinFormat(shortindex),它能够依照编号返回内置数据类型。
另外staticshortgetBuiltinFormatformat)方式那么能够依照数据类型返回其编号,staticgetBuiltinFormats()能够返回整个内置的数据格式列表。
在HSSFDataFormat里一共定义了49种内置的数据格式,如下面所示。
HSSFDataFormat的数据格式
内置数据类型
编号
General"
0
0"
1
2
#,##0"
3
#,##"
4
($#,##0_);
($#,##0)"
5
[Red]($#,##0)"
6
($#,##;
($#,##"
7
[Red]($#,##"
8
0%"
9
%"
0xa
+00"
0xb
#?
/?
0xc
?
0xd
m/d/yy"
0xe
d-mmm-yy"
0xf
d-mmm"
0x10
mmm-yy"
0x11
h:
mmAM/PM"
0x12
mm:
ssAM/PM"
0x13
mm"
0x14
ss"
0x15
m/d/yyh:
0x16
保留为过国际化用
0x17-0x24
(#,##0_);
(#,##0)"
0x25
[Red](#,##0)"
0x26
(#,##;
(#,##"
0x27
[Red](#,##"
0x28
_($*#,##0_);
_($*(#,##0);
_($*\"
-\"
_);
_(@_)"
0x29
_(*#,##;
_(*(#,##;
_(*\"
0x2a
_($*#,##;
_($*(#,##;
_($*\"
0x2b
0x2c
0x2d
[h]:
0x2e
0x2f
##+0"
0x30
@"
-Thisistextformat
0x31
在上面表中,字符串类型所对应的是数据格式为"
(最后一行),也就是HSSFDataFormat中定义的值为0x31(49)的那行。
Date类型的值的范围是0xe-0x11,本例子中的Date格式为"
,在HSSFDataFormat定义的值为0xe(14)。
第二段:
POI中Excel文件Cell的类型
在读取每一个Cell的值的时候,通过getCellType方式获适当前Cell的类型,在Excel中Cell有6种类型,如下面所示。
Cell的类型
CellType
说明
CELL_TYPE_BLANK
空值
CELL_TYPE_BOOLEAN
布尔型
CELL_TYPE_ERROR
错误
CELL_TYPE_FORMULA
公式型
CELL_TYPE_STRING
字符串型
CELL_TYPE_NUMERIC
数值型
一般都采用CELL_TYPE_STRING和CELL_TYPE_NUMERIC类型,因为在Excel文件中只有字符串和数字。
如果Cell的Type为CELL_TYPE_NUMERIC时,还需要进一步判断该Cell的数据格式,因为它有可能是Date类型,在Excel中的Date类型也是以Double类型的数字存储的。
Excel中的Date表示当前时间与1900年1月1日相隔的天数,所以需要调用HSSFDateUtil的isCellDateFormatted方法,判断该Cell的数据格式是否是ExcelDate类型。
若是是,那么挪用getDateCellValue方式,返回一个Java类型的Date。
好了读完上面两段文字我想大伙儿关于CELL类型和格式应该清楚了,更应该清楚的是到底怎么才能将‘设置单元格格式’改成文本然后再导出
解决方案:
确实是上面代码中的ExcelOut类里面createTableRow方式中的一段代码
HSSFCellStylecellStyle2=();
HSSFDataFormatformat=();
));
(cellStyle2);
看最终导出成效图吧,点击任何一个CELL右键设置单元格格式
3)
(null,"
这句话有点意思
看到没这确实是类的有关消息输出的益处,很方便利用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POI 设置 EXCEL 单元格 格式 文本