一、jxl.jar概述

  • 通过java操作excel表格的工具类库
  • 支持Excel 95-2000的所有版本
  • 生成Excel 2000标准格式
  • 支持字体、数字、日期操作
  • 能够修饰单元格属性
  • 支持图像和图表

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

Java Excel API 文档

http://www.andykhan.com/jexcelapi/

二、搭建环境

  将下载后的文件解包,得到JXL.JAR,放入classpath。如果包不能正常的加载,可以把你下载好的JXL.JAR包放入本机jre的安装目录下,例如 D:\JAVA\jre\lib\ext中。如果想在Eclipse的一个项目中导入JXL.JAR,在该项目上右键,点击“属性”,类别那里选择”库“,点击"添加外部jar”在弹出的文件选择对话框选择你的jxl.jar。

三、创新文件:

新建一个名"Test.xls"的Excel文件,其中第一个工作表被命名为“sheet_one”,代码如下,编译执行后,会在当前位置产生一个Excel文件。

 package com.test;

 import jxl.*;
import java.io.*; import jxl.write.*;
import jxl.write.biff.RowsExceededException; public class CreateExcel { public static void main(String[] args) throws RowsExceededException, WriteException{
WritableWorkbook book;
try {
System.out.println("---start---");
//打开文件
book = Workbook.createWorkbook(new File("Test.xls")); //生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("sheet_one", 0); //在Label对象的构造中指名单元格位置是第一列第一行(0,0)
//以及单元格内容为Hello World
Label label = new Label(0,0,"Hello World"); //将定义好的单元格添加到工作表中
sheet.addCell(label); /*生成一个保存数字的单元格
必须使用Number的完整包路径,否则有语法歧义
单元格位置是第二列,第一行,值为789.123*/
jxl.write.Number num = new jxl.write.Number(0,1,123.456);
sheet.addCell(num); //写入数据并关闭文
book.write();
book.close();
System.out.println("---end---"); } catch (IOException e) {
System.out.println(e);
} } }

四、读取文件:

使用我们上面创建的Excel文件为例,做一个简单的读取操作,程序代码如下:

 package com.test;

 import jxl.*;
import jxl.read.biff.BiffException; import java.io.*; public class ReadExcel { public static void main(String[] args) throws BiffException, IOException {
Workbook book = Workbook.getWorkbook(new File("Test.xls")); //获得第一个工作表对象
Sheet sheet = book.getSheet("sheet_one");
//Sheet sheet = book.getSheet(0); int rows = sheet.getRows();
int cols = sheet.getColumns(); System.out.println("总列数:" + cols);
System.out.println("总行数:" + rows);
System.out.println("----------------------------"); int i=0;
int j=0;
//循环读取数据
for(i=0;i<cols;i++)
{
for(j=0;j<rows;j++)
{
System.out.println("第"+j+"行,第"+i+"列为:"+sheet.getCell(i, j).getContents());
} } } }

输出结果:

总列数:1
总行数:2
----------------------------
第0行,第0列为:Hello World
第1行,第0列为:123.456

五、修改文件:

  利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,其他操作和创建Excel是一样的。下面的例子是在我们已经生成的Excel文件中添加一个工作表:

 package com.test;

 import jxl.*;
import java.io.*; import jxl.read.biff.BiffException;
import jxl.write.*;
import jxl.write.biff.RowsExceededException; public class UpdateExcel { public static void main(String[] args) throws BiffException, IOException, RowsExceededException, WriteException{
//获得文件
Workbook wb = Workbook.getWorkbook(new File ("Test.xls")); //打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book = Workbook.createWorkbook(new File ("Test.xls"), wb); //添加一个工作表
WritableSheet sheet = book.createSheet("sheet_two", 1); sheet.addCell(new Label(0,0,"Test data for sheet_two")); //输出
System.out.println(sheet.getCell(0, 0).getContents()); book.write();
book.close(); } }

输出:

Test data for sheet_two

最新文章

  1. SQL 语法总结
  2. 每天一个 Linux 命令(21):find命令之xargs
  3. ListAdapter列表适配器
  4. python读取excel数据,并可视化展现
  5. ArcGIS“一个或多个ActiveX控件无法显示...”问题的解决方案
  6. 02_Jquery_04_属性选择器
  7. TreeComboBox控件范例
  8. PHP将Excel导入数据库以及数据库数据导出至Excel
  9. C# 爬虫 抓取小说
  10. 8266编译错误 xtensa-lx106-elf/bin/ld: segmentled section `.text&#39; will not fit in region `iram1_0_seg&#39;
  11. 解决layui table方法渲染时时间格式问题
  12. Luogu3579 Solar Panels
  13. 在grails中远程调用action
  14. 安装Esxi 6.5
  15. 四、使用汇编编写LED裸机驱动
  16. windows设置多用户模式
  17. Java JDK下载安装及配置
  18. [状态机]嵌入式设计模式:有限状态自动机的C语言实现
  19. 【BZOJ】4756: [Usaco2017 Jan]Promotion Counting
  20. myeclipse更改类或者是配置文件不用重启tomcat的方法

热门文章

  1. 下载企业级证书打包的app 出现“正在下载”或“等待中”的图标并且无法删除的问题
  2. Linux 用户和用户操作
  3. C# String.split()用法小结
  4. 【java】ThreadLocal线程变量的实现原理和使用场景
  5. cocos2d-x 真正的定时器之schedule
  6. List与Array之间互换
  7. Java 单例模式的常见应用场景
  8. 百度搜索URL参数你知道多少
  9. 详细解读Volley(二)—— ImageRequest &amp; Request简介
  10. Mysql 的子查询