Tom-随笔
JAVA操作excel
1
package
com.eesys.apps.logic;
2
3
import
java.io.File;
4
import
java.io.FileInputStream;
5
import
java.io.InputStream;
6
7
import
jxl.Cell;
8
import
jxl.CellType;
9
import
jxl.Sheet;
10
import
jxl.Workbook;
11
import
jxl.write.Label;
12
13
public
class
PrintManager
{
14
15
public
static
void
main(String[] args)
{
16
jxl.Workbook rwb
=
null
;
17
try
{
18
//
构建Workbook对象, 只读Workbook对象
19
//
直接从本地文件创建Workbook
20
//
从输入流创建Workbook
21
System.out.println(
"
********START!*******
"
);
22
InputStream is
=
new
FileInputStream(
"
D:/test.xls
"
);
23
rwb
=
Workbook.getWorkbook(is);
24
25
//
Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
26
//
Sheet的下标是从0开始
27
//
获取第一张Sheet表
28
Sheet rs
=
rwb.getSheet(
0
);
29
//
获取Sheet表中所包含的总列数
30
int
rsColumns
=
rs.getColumns();
31
//
获取Sheet表中所包含的总行数
32
int
rsRows
=
rs.getRows();
33
//
获取指定单元格的对象引用
34
for
(
int
i
=
0
;i
<
rsRows;i
++
)
{
35
for
(
int
j
=
0
;j
<
rsColumns;j
++
)
{
36
Cell cell
=
rs.getCell(j,i);
37
System.out.print(cell.getContents()
+
"
"
);
38
}
39
System.out.println();
40
}
41
//
利用已经创建的Excel工作薄创建新的可写入的Excel工作薄
42
jxl.write.WritableWorkbook wwb
=
Workbook.createWorkbook(
new
File(
"
D:/Book2.xls
"
),rwb);
43
//
读取第一张工作表
44
45
jxl.write.WritableSheet ws
=
wwb.getSheet(
0
);
46
47
48
//
获得第一个单元格对象
49
jxl.write.WritableCell wc
=
ws.getWritableCell(
0
,
0
);
50
//
判断单元格的类型, 做出相应的转化
51
if
(wc.getType()
==
CellType.LABEL)
{
52
Label l
=
(Label) wc;
53
l.setString(
"
The value has been modified.
"
);
54
}
55
//
写入Excel对象
56
wwb.write();
57
wwb.close();
58
System.out.println(
"
********END!*******
"
);
59
60
}
catch
(Exception e)
{
61
e.printStackTrace();
62
}
63
finally
{
64
//
操作完成时,关闭对象,释放占用的内存空间
65
rwb.close();
66
67
}
68
}
69
}
70
JSP 文件
1
<%
@ page contentType
=
"
text/html; charset=GBK
"
%>
2
<%
@ page
import
=
"
java.io.File
"
%>
3
<%
@ page
import
=
"
java.io.FileInputStream
"
%>
4
<%
@ page
import
=
"
java.io.FileOutputStream
"
%>
5
<%
@ page
import
=
"
jxl.write.WritableSheet
"
%>
6
<%
@ page
import
=
"
java.io.InputStream
"
%>
7
8
<%
9
response.reset();
//
清除Buffer
10
response.setContentType(
"
application/vnd.ms-excel
"
);
11
File fileWrite
=
new
File(
"
d:/test.xls
"
);
12
response.setContentLength((
int
) fileWrite.length());
13
InputStream in
=
new
FileInputStream(fileWrite);
14
byte
[] b
=
new
byte
[
2048
];
15
int
len
=
0
;
16
while
((len
=
in.read(b))
>
0
)
{
17
response.getOutputStream().write(b,
0
, len);
//
向浏览器输出
18
}
19
in.close();
20
response.getOutputStream().close();
21
22
%>
posted on 2006-12-19 15:00
Tom
阅读(173)
评论(0)
编辑
收藏
所属分类:
报表工具
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
JAVA操作excel
iReport & JasperReport配置及用户简明手册
jasperreport可以用Collection做为数据源,这种方式比用Connection方式更为灵活方便
ireport+jasperreports 探索
Powered by:
BlogJava
Copyright © Tom
<
2006年12月
>
日
一
二
三
四
五
六
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
5
6
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 43
文章 - 0
评论 - 17
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
(42)
Appfuse(3)
(rss)
Asp(1)
(rss)
CVS(2)
(rss)
DB(5)
(rss)
Develop IDE(1)
(rss)
EJB(1)
(rss)
Java(10)
(rss)
JavaScript(5)
(rss)
Spring(2)
(rss)
个人随笔(8)
(rss)
报表工具(4)
(rss)
随笔档案
(43)
2007年12月 (1)
2007年11月 (3)
2007年9月 (1)
2007年8月 (1)
2007年7月 (2)
2007年2月 (4)
2007年1月 (11)
2006年12月 (8)
2006年11月 (12)
文章分类
Java
(rss)
相册
Photo in ShangHai
搜索
最新评论
1. re: 一个关于StringBuilder与StringBuffer性能的小试验 [未登录]
@dreamstone
多线程还比什么,一个是线程安全的,一个是非线程安全的,没有可比性
--icanfly
2. re: 一个关于StringBuilder与StringBuffer性能的小试验 [未登录]
而且并不是多线程下一定要用stringBuffer
多线程下并不一定要同步的。比如只读的情况,或不是公共资源的情况。
--abc
3. re: 一个关于StringBuilder与StringBuffer性能的小试验
都是牛人啊
--路人甲
4. re: 热烈庆祝CVSNT架设成功!呵呵[未登录]
评论内容较长,点击标题查看
--aaaa
5. re: appfuse 乱码问题[未登录]
解决这类问题,这些方法都太麻烦。
最方便的办法是用propertiesEditor编辑properties配置文件。
一个eclipse的插件。
--YeSoon
阅读排行榜
1. appfuse 乱码问题(3495)
2. Tomcat JSP调用JBoss布署的EJB远程方法(2304)
3. 一个关于StringBuilder与StringBuffer性能的小试验 (2282)
4. 热烈庆祝CVSNT架设成功!呵呵(2117)
5. ORACLE查询树型关系(2070)
评论排行榜
1. 一个关于StringBuilder与StringBuffer性能的小试验 (5)
2. 扼腕叹息者,华为之倏然兴衰也(3)
3. 中国之怪现状-----"党纪、行政处分"(2)
4. appfuse 乱码问题(2)
5. 热烈庆祝CVSNT架设成功!呵呵(2)