POI简介
Apache POI是Apache软件基金会的开源库,POI提供API供开发人员对office格式档案的读和写的功能。
学习心得
需要导入的jar包:
dom4j-1.6.1.jar
poi-3.7.jar
poi-ooxml-3.7.jar
poi-ooxml-schemas-3.7.jar
xmlbeans-2.6.0.jar
注意:
1、现在人们普遍使用的Excel文档有xls 和xlsx两种文档格式,其中xls格式的Excel文档又分为5.0/95工作薄以及97-2003工作薄这两种。需要注意的是,由于5.0/95工作薄的版本太低,现在的POI文档不在支持这种类型的Excel文档的读取工作,当试图读取这种类型的Excel文档的时候,POI会抛出异常(OldExcelFormatException)。我使用的版本是POI3.7.
2、创建Workbook时,由于Excel存在xls及xlsx两种格式,所以创建方式有所不同,其中对于xls格式的文档,需要使用HSSFWorkbook来创建工作薄对象,而对于xlsx格式的Excel文档,则需要使用XSSFWorkbook来创建工作薄。其中HSSFWorkbook于XSSFWorkbook这两个类其实都是Workbook接口的一个实现类。下面是创建工作薄对象的代码:
//创建一个不存在的excel文件
private static Workbook createWorkbookIfNotExist(String fileName) throws Exception {
Workbook wb = null;
if(fileName.endsWith(".xls")) {
wb = new HSSFWorkbook();
} else if(fileName.endsWith(".xlsx")) {
wb = new XSSFWorkbook();
} else {
throw new Exception("文件类型错误!");
}
try{
OutputStream output = new FileOutputStream(fileName);
wb.write(output);
}catch(FileNotFoundException e) {
System.out.println("文件创建失败,失败原因为:" + e.getMessage());
throw new FileNotFoundException();
}
System.out.println(fileName + "文件创建成功!");
return wb;
}
//创建一个新的或者已存在的Excel文档的Workbook
public static Workbook createWorkbook(String fileName) throws Exception {
InputStream input = null;
Workbook wb = null;
try{
input = new FileInputStream(fileName);
wb = WorkbookFactory.create(input);
} catch(FileNotFoundException e) {
System.out.println("要打开的文件不存在,正试图创建该文件,请稍后……!");
wb = createWorkbookIfNotExist(fileName);
} catch(OldExcelFormatException e) {
System.out.println("文件打开失败,原因:要打开的Excel文件版本过低!");
throw new OldExcelFormatException("文件版