`
kayo
  • 浏览: 548900 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论
阅读更多

一、java Excel API 是允许java开发者读取生成Excel电子表格的开源java API,另外,它包括一个允许java应用读取Excel,修改一些单元格,写入一个新的电子表格的机制。 这组API 允许一个处理和递交Excel电子表格的纯java应用,在非windows操作系统 下运行。因为基于java,这个api可以在一个servlet中被 调用;所以通过它在internet和企业内网的web应用可以访问Excel的功能;

二、 特点: 1) 读取Excel95,97,2000的数据; 2) 读取和写入Excel97及以后版本的公式; 3) 生成Excel2000格式的电子表格; 4) 支持对字体,数字,日期的格式化; 5) 支持对单元格加阴影和加色彩; 6) 修改存在的工作表; 7) 支持图片的创建; 8) 日志记录可以定制;

三.、局限性: JExcelApi不能够生成和读取图表的信息;这个信息当图表被拷贝的时候仍然保存;当增加一个图片到表中,仅仅PNG格式被支持

 

一、创建一个Excel工作表

import java.io.File;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/*
* 石磊
* 2009-02-26
* 诚信能环
*/
public class CreateXLS {
public static void main(String args[]) {
   try {
    // 打开文件
    WritableWorkbook book = Workbook.createWorkbook(new File("F:/测试.xls"));

    // 生成名为“第一页”的工作表,参数0表示这是第一页
    WritableSheet sheet = book.createSheet("第一页", 0);

    // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
    // 以及单元格内容为test
    Label label = new Label(0, 0, "哈喽啊");

    // 将定义好的单元格添加到工作表中
    sheet.addCell(label);

    /*
    * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
    */
    jxl.write.Number number = new jxl.write.Number(1, 0, 8888.88);
    sheet.addCell(number);

    // 写入数据并关闭文件
    book.write();
    book.close();
   } catch (Exception e) {
    System.out.println(e);
   }
}
}

二、修改Excel文件

import java.io.File;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/*
* 石磊
* 2009-02-26
* 诚信能环
*/
public class UpdateXLS {
public static void main(String args[]) {
   try {
    // Excel获得文件
    Workbook wb = Workbook.getWorkbook(new File("F:/测试.xls"));

    // 打开一个文件的副本,并且指定数据写回到原文件
    WritableWorkbook book = Workbook.createWorkbook(new File("F:/测试.xls"),wb);

    // 添加一个工作表
    WritableSheet sheet = book.createSheet("第二页", 1);
    sheet.addCell(new Label(0, 0, "修改了"));
    //向第一个工作表里插入一个日期
    WritableSheet sheet0 = book.getSheet(0);
    jxl.write.DateTime labelDT = new jxl.write.DateTime(2, 0, new java.util.Date());
    sheet0.addCell(labelDT);
   
    book.write();
    book.close();
   } catch (Exception e) {
    System.out.println(e);
   }
}
}

三、读取Excel文件

import java.io.File;
import java.util.Date;

import jxl.Cell;
import jxl.CellType;
import jxl.DateCell;
import jxl.LabelCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
/*
* 石磊
* 2009-02-26
* 诚信能环
*/
public class ReadXLS {
public static void main(String args[]) {
   try {
    File file = new File("F:/测试.xls");
    //打开excel文件
    Workbook book = Workbook.getWorkbook(file);
    // 获得第一个工作表对象
    Sheet sheet = book.getSheet(0);
   
    String str = "";
    double i = 0;
    Date d = null;
   
    //得到三个单元格
    Cell cell1 = sheet.getCell(0, 0);
    Cell cell2 = sheet.getCell(1, 0);
    Cell cell3 = sheet.getCell(2, 0);
    //判断cell1是否是字符类型
    if (cell1.getType()==CellType.LABEL) {
     LabelCell lc = (LabelCell)cell1;
     str = lc.getString();
    }
    //判断cell2是否是Double类型
    if (cell2.getType()==CellType.NUMBER) {
     NumberCell nc = (NumberCell)cell2;
     i = nc.getValue();
    }
    //判断cell3是否是日期类型
    if (cell3.getType()==CellType.DATE) {
     DateCell dc = (DateCell)cell3;
     d = dc.getDate();
    }
   
    //直接将单元格内的内容转成字符串
    String result1 = cell1.getContents();
    String result2 = cell2.getContents();
    String result3 = cell3.getContents();
   
    System.out.println("result1="+result1+","+"result2="+result2+","+"result3="+result3);
    System.out.println("str="+str+","+"i="+i+","+"d="+d);
    book.close();
   } catch (Exception e) {
    System.out.println(e);
   }
}
}
 
分享到:
评论
1 楼 zhangshuling1214 2009-06-09  
有个问题啊,你哪个修改,跟新建有区别吗?
怎么老觉得一样的啊?

不过想请教一下,获得一个单元格,然后修改里面的内容,咋搞啊?

相关推荐

Global site tag (gtag.js) - Google Analytics