电脑技术学习

Java操作Excel、PDF文件(1)

dn001

  下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码:

  jxl是一个*国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

  使用如下:

  搭建环境

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

  基本操作

  一、创建文件

  拟生成一个名为“test.xls的Excel文件,其中第一个工作表被命名为

  “第一页,大致效果如下:

  Java代码

  package test;

  // 生成Excel的类

  import java.io.File;

  import jxl.Workbook;

  import jxl.write.Label;

  import jxl.write.WritableSheet;

  import jxl.write.WritableWorkbook;

  publicclass CreateExcel{

  publicstaticvoid main(String args[]){

  try;{

  // 打开文件

  WritableWorkbook book = Workbook.createWorkbook( new File( " test.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 , 555.12541 );

  sheet.addCell(number);

  // 写入数据并关闭文件

  book.write();

  book.close();

  }catch (Exception e){

  System.out.println(e);

  }

  }

  package test;

  // 生成Excel的类

  import java.io.File;

  import jxl.Workbook;

  import jxl.write.Label;

  import jxl.write.WritableSheet;

  import jxl.write.WritableWorkbook;

  publicclass CreateExcel{

  publicstaticvoid main(String args[]){

  try;{

  // 打开文件

  WritableWorkbook book = Workbook.createWorkbook( new File( " test.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 , 555.12541 );

  sheet.addCell(number);

  // 写入数据并关闭文件

  book.write();

  book.close();

  }catch (Exception e){

  System.out.println(e);

  }

  }

  }

  编译执行后,会产生一个Excel文件。
  三、读取文件

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

  Java代码

  package test;

  // 读取Excel的类

  import java.io.File;

  import jxl.Cell;

  import jxl.Sheet;

  import jxl.Workbook;

  publicclass ReadExcel{

  publicstaticvoid main(String args[]){

  try;{

  Workbook book = Workbook.getWorkbook( new File( " test.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);

  }

  }

  package test;

  // 读取Excel的类

  import java.io.File;

  import jxl.Cell;

  import jxl.Sheet;

  import jxl.Workbook;

  publicclass ReadExcel{

  publicstaticvoid main(String args[]){

  try;{

  Workbook book = Workbook.getWorkbook( new File( " test.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);

  }

  }

  }

  程序执行结果:test

  四、修改文件

  利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,

  其他操作和创建Excel是一样的。下面的例子是在我们已经生成的Excel文件中添加一个工作表:

  Java代码

  package test;

  import java.io.File;

  import jxl.Workbook;

  import jxl.write.Label;

  import jxl.write.WritableSheet;

  import jxl.write.WritableWorkbook;

  publicclass UpdateExcel{

  publicstaticvoid main(String args[]){

  try;{

  // Excel获得文件

  Workbook wb = Workbook.getWorkbook( new File( " test.xls " ));

  // 打开一个文件的副本,并且指定数据写回到原文件

  WritableWorkbook book = Workbook.createWorkbook( new File( " test.xls " ),

  wb);

  // 添加一个工作表

  WritableSheet sheet = book.createSheet( " 第二页 " , 1 );

  sheet.addCell( new Label( 0 , 0 , " 第二页的测试数据 " ));

  book.write();

  book.close();

  }catch (Exception e){

  System.out.println(e);

  }

  }

 package test;

  import java.io.File;

  import jxl.Workbook;

  import jxl.write.Label;

  import jxl.write.WritableSheet;

  import jxl.write.WritableWorkbook;

  publicclass UpdateExcel{

  publicstaticvoid main(String args[]){

  try;{

  // Excel获得文件

  Workbook wb = Workbook.getWorkbook( new File( " test.xls " ));

  // 打开一个文件的副本,并且指定数据写回到原文件

标签: PDF