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技术最热门 

 

 

发布了57 篇原创文章 · 获赞 11 · 访问量 21万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章