一、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); } } } 相关资源:Java Excel Api及详细教程
