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

?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

32

33

34



35



36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51



52

53

54

55

56

57

58

59

60



61

62

63



64

65

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
%>

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12

13

14

15

16



17

18

19

20

21

22

posted on 2006-12-19 15:00 Tom 閱讀(177) 評論(0) 編輯 收藏 所屬分類: 報表工具