杂家
学习复习
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
Java操作Excel完美解决方案 [转]
只要有表格,就会有Microsoft Excel,用Microsoft Excel处理数据已成为不少人的习惯。Jakarta POI API就为Java程序员提供了一条存取Microsoft文档格式的神奇之路,其中最成熟的就是能存取Microsoft Excel文档的HSSF API。
本篇文章就举例示范如何利用Java 创建和读取Excel文档,并设置单元格的字体和格式。
为了保证示例程序的运行,必须安装Java 2 sdk1.4.0 和Jakarta POI,Jakarta POI的
Web
站点是: http://jakarta.apache.org/poi/
创建Excel 文档
示例1将演示如何利用Jakarta POI API 创建Excel 文档。
示例1程序如下:
1
import
org.apache.poi.hssf.usermodel.HSSFWorkbook;
2
import
org.apache.poi.hssf.usermodel.HSSFSheet;
3
import
org.apache.poi.hssf.usermodel.HSSFRow;
4
import
org.apache.poi.hssf.usermodel.HSSFCell;
5
import
java.io.FileOutputStream;
6
public
class
CreateXL
{
7
8
/** */
/**
Excel 文件要存放的位置,假定在D盘JTest目录下
*/
9
10
public
static
String outputFile
=
"
D:/JTest/ gongye.xls
"
;
11
12
public
static
void
main(String argv[])
{
13
14
try
{
15
16
//
创建新的Excel 工作簿
17
18
HSSFWorkbook workbook
=
new
HSSFWorkbook();
19
20
//
在Excel工作簿中建一工作表,其名为缺省值
21
//
如要新建一名为"效益指标"的工作表,其语句为:
22
//
HSSFSheet sheet = workbook.createSheet("效益指标");
23
24
HSSFSheet sheet
=
workbook.createSheet();
25
26
//
在索引0的位置创建行(最顶端的行)
27
28
HSSFRow row
=
sheet.createRow((
short
)
0
);
29
30
//
在索引0的位置创建单元格(左上端)
31
HSSFCell cell
=
row.createCell((
short
)
0
);
32
//
定义单元格为字符串类型
33
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
34
//
在单元格中输入一些内容
35
cell.setCellValue(
"
增加值
"
);
36
//
新建一输出文件流
37
FileOutputStream fOut
=
new
FileOutputStream(outputFile);
38
//
把相应的Excel 工作簿存盘
39
workbook.write(fOut);
40
fOut.flush();
41
//
操作结束,关闭文件
42
fOut.close();
43
System.out.println(
"
文件生成
"
);
44
45
}
catch
(Exception e)
{
46
System.out.println(
"
已运行 xlCreate() :
"
+
e );
47
}
48
}
49
}
读取Excel文档中的数据
示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为gongye.xls的Excel文件。
示例2程序如下:
1
import
org.apache.poi.hssf.usermodel.HSSFWorkbook;
2
import
org.apache.poi.hssf.usermodel.HSSFSheet;
3
import
org.apache.poi.hssf.usermodel.HSSFRow;
4
import
org.apache.poi.hssf.usermodel.HSSFCell;
5
import
java.io.FileInputStream;
6
public
class
ReadXL
{
7
/** */
/**
Excel文件的存放位置。注意是正斜线
*/
8
public
static
String fileToBeRead
=
"
D:/JTest/ gongye.xls
"
;
9
public
static
void
main(String argv[])
{
10
try
{
11
//
创建对Excel工作簿文件的引用
12
HSSFWorkbook workbook
=
new
HSSFWorkbook(
new
FileInputStream(fileToBeRead));
13
//
创建对工作表的引用。
14
//
本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
15
HSSFSheet sheet
=
workbook.getSheet(
"
Sheet1
"
);
16
//
也可用getSheetAt(int index)按索引引用,
17
//
在Excel文档中,第一张工作表的缺省索引是0,
18
//
其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
19
//
读取左上端单元
20
HSSFRow row
=
sheet.getRow(
0
);
21
HSSFCell cell
=
row.getCell((
short
)
0
);
22
//
输出单元内容,cell.getStringCellValue()就是取所在单元的值
23
System.out.println(
"
左上端单元是:
"
+
cell.getStringCellValue());
24
}
catch
(Exception e)
{
25
System.out.println(
"
已运行xlRead() :
"
+
e );
26
}
27
}
28
}
设置单元格格式
在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:
1、创建字体,设置其为红色、粗体:
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
2、创建格式
HSSFCellStyle cellStyle= workbook.createCellStyle();
cellStyle.setFont(font);
3、应用格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("标题 ");
ExtJS教程
-
Hibernate教程
-
Struts2 教程
-
Lucene教程
发表于 2006-01-03 21:07
淘声依旧
阅读(325)
评论(0)
编辑
收藏
所属分类:
104.Java
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
Scanner----java控制台和文件读取的利器(java 5新增)
Eclipse 3.4使用摘录
java图片处理 (文字水印、图片水印、缩放、补白)
关于freemark
关于方法重载 overloading 和 方法覆盖 overridden
自动设置JAVA环境变量的脚本转自(JAVA中文世界---紫叶)
C3P0连接池详细配置(转自javaEye 莫生气)
Hibernate常见错误
Java中使用BigDecimal进行浮点数精确计算、超大整数、浮点数等计算,没有数位限制
Java数字格式化
<
2006年1月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
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
公告
要冒一险!整个生命就是一场冒险,走得最远的人常是愿意去做、愿意去冒险的人。
随笔分类
(153)
100.Struts2(27)
(rss)
101.Compass
(rss)
102.ExtJS(23)
(rss)
103.Hibernate(25)
(rss)
104.Java(30)
(rss)
105.JavaScript(22)
(rss)
106.jBPM(1)
(rss)
107.Log4j(1)
(rss)
108.Lucene(13)
(rss)
109.Spring(9)
(rss)
110.Things(2)
(rss)
实用连接
天堂露珠
我的心情
西安信息资源网
积分与排名
积分 - 95657
排名 - 602
最新评论
1. re: JSTL fmt:formatNumber 数字、货币格式化
非发放
--非发放
2. re: JSTL fmt:formatNumber 数字、货币格式化
<fmt:formatNumber value="60000" pattern="#,#00#"/>
--非发放
3. re: java图片处理 (文字水印、图片水印、缩放、补白)
好东西!
谢谢!
--rb
4. re: JQuery1.2API中文文档[未登录]
hao
--123
5. re: Java获取各种常用时间方法
很好很强大
--`万物皆对象`
hits
Casino