Java编程操作Excel的一种方法

MS的电子表格(Excel)是Office的重要成员,是保存统计数据的一种常用格式。作为办公文档,势必要涉及到的电子文档的交换,Excel是一种在企业中非常通用的文件格式,打印和管理也比较方便。在一个Java应用中,将一部分数据生成Excel格式,是与其他系统无缝连接的重要手段。

  在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI.其中jExcelAPI是一个韩国程序员的作品,虽然没有POI那样血统高贵,但是在笔者的使用过程中,感觉简单方便,对中文支持非常好,功能也比较强大。当前的最高版本是2.4.作者的网站上对它的特征有如下描述:

  ● 支持Excel 95-2000的所有版本

  ● 生成Excel 2000标准格式

  ● 支持字体、数字、日期操作

  ● 能够修饰单元格属性

  ● 支持图像和图表

  应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

  搭建环境

  将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。

  基本操作

  一、创建文件

  拟生成一个名为"测试数据。xls"的Excel文件,其中第一个工作表被命名为"第一页",大致效果如下:

  代码(CreateXLS.java):

  //生成Excel的类

  import java.io.*;

  import jxl.*;

  import jxl.write.*;

  public class CreateXLS

  {

  public static void main(String args[])

  {

  try

  {

  //打开文件

  WritableWorkbook book=

  Workbook.createWorkbook(new File("测试。xls"));

  //生成名为"第一页"的工作表,参数0表示这是第一页

  WritableSheet sheet=book.createSheet("第一页",0);

  //在Label对象的构造子中指名单元格位置是第一列第一行(0,0)

  //以及单元格内容为test

  Label label=new Label(0,0,"test");

  //将定义好的单元格添加到工作表中

  sheet.addCell(label);

  /*生成一个保存数字的单元格

  必须使用Number的完整包路径,否则有语法歧义

  单元格位置是第二列,第一行,值为789.123*/

  jxl.write.Number number = new jxl.write.Number(1,0,789.123);

  sheet.addCell(number);

  //写入数据并关闭文件

  book.write();

  book.close();

  }catch(Exception e)

  {

  System.out.println(e);

  }

  }

  }

  编译执行后,会在当前位置产生一个Excel文件。

  三、读取文件

  以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下:

  //读取Excel的类

  import java.io.*;

  import jxl.*;

  public class ReadXLS

  {

  public static void main(String args[])

  {

  try

  {

  Workbook book=

  Workbook.getWorkbook(new File("测试。xls"));

  //获得第一个工作表对象

  Sheet sheet=book.getSheet(0);

  //得到第一列第一行的单元格

  Cell cell1=sheet.getCell(0,0);

  String result=cell1.getContents();

  System.out.println(result);

  book.close();

  }catch(Exception e)

  {

  System.out.println(e);


-------------------------------------------------------------------------------------------------

移动开发者大会:Android开发者将越来越赚钱 海量Android教程、开发资料和源码

10类最急需IT人才:Java开发者居首给将成为“Android高手”的10个建议

成为Java高手的25个学习目标--非常经典 Android 4.1果冻豆新特性详解

芯片巨头海思和展讯:给中国芯片业带来信心 海量经典Java教程、学习资料和源码

Java侵权诉讼Google获胜,Android厚积薄发 面试必备:Android笔试总结

Android高手必须掌握的28大内容和10个建议 Android平台研发人才缺口30万

Android开发环境安装和配置步骤详细图解 2012国内移动App开发者大调查结果

Windows 7下搭建android开发环境步骤图解 Android 4.0的30个突出的新特性

Android高手要经过的6个阶段和6个境界 linux下搭建Android开发环境步骤

从IT菜鸟变为“IT骨干开发者”的11个建议 程序员编程技术迅速提高的终极攻略

2012世界各国人均GDP排名,中国超泰国 2012年全国各省平均工资排行

2012年中国大学高校排行榜(580强排名) 中国各省市面积和人口数量排名

中国百万开发者大调查:程序员的薪水不错 Java高手需要越过的10座高山

周立功谈嵌入式:我的25年嵌入式生涯 Android和Java语言的异同和关系

华为中国区手机销量达千万,80%为智能机 谷歌Android碎片化严重

2012年中国各省GDP和人均GDP排名 90后就业“钱景”:IT仍是最佳选择

2012全球城市竞争力500强,69个中国城市上榜不要做浮躁的软件工程师

2012年世界500强,79家大陆香港台湾公司上榜名单 给IT新兵的15个建议

美国知名科技公司入门级软件工程师的薪水排名回顾Java经过的风风雨雨

71道经典Android面试题和答案--重要知识点都涉及到了

高校应届毕业生“IT业”收入最高,Android技术最热门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值