java Excel API,javaexcelapi
分享于 点击 6406 次 点评:174
java Excel API,javaexcelapi
一、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);
}
}
}
相关文章
- 暂无相关文章
用户点评