一. POI简介
Jakarta POI 是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API
目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,你可以控制一些属性如sheet,cell等等。
二. HSSF概况
HSSF 是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”。 也许HSSF的名字有点滑稽,就本质而言它是一个非常严肃、正规的API。通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。
HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件用户模型”。前者很好理解,后者比较抽象,但操作效率要高得多。
三.Poi操作对象:
只列举了几个:
HSSFWorkbook excell 文档对象介绍
HSSFSheet excell的表单
HSSFRow excell的行
HSSFCell excell的格子单元
HSSFFont excell字体
HSSFName 名称
HSSFCellStyle cell样式
HSSFDataFormat 日期格式
Poi对表格。
0,0 0,1 0,2 0,3
1,0 1,1 1,2 1,3
2,0 2,1 2,2 2,3
四:代码:
1.创建对象:
try{
POIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:\test.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs);
} catch (IOException e) {
e.printStackTrace();
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short) 0);
String msg = cell.getStringCellValue();
2.poi判断表格长度不够准确,需要重新写过
3.单元格类型:cell.getCellType();常用的几种
HSSFCell.CELL_TYPE_BOOLEAN:
HSSFCell.CELL_TYPE_FORMULA:
HSSFCell.CELL_TYPE_NUMERIC:
HSSFCell.CELL_TYPE_STRING:
不同类型的单元格赋值会出错
注:setColumnHidden函数要有效,setColumnWidth要相同的宽度。
4. 将生成的表格文件保存到磁盘中。
File file = new File(“d:\test.xls”);
FileOutputStream fileOut = new FileOutputStream(file);
Wb.write(fileOut);
fileOut.flush();
fileOut.close();
poi操作相关代码。Poi.java,POIUtils.java
Jakarta POI 是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API
目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,你可以控制一些属性如sheet,cell等等。
二. HSSF概况
HSSF 是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”。 也许HSSF的名字有点滑稽,就本质而言它是一个非常严肃、正规的API。通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。
HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件用户模型”。前者很好理解,后者比较抽象,但操作效率要高得多。
三.Poi操作对象:
只列举了几个:
HSSFWorkbook excell 文档对象介绍
HSSFSheet excell的表单
HSSFRow excell的行
HSSFCell excell的格子单元
HSSFFont excell字体
HSSFName 名称
HSSFCellStyle cell样式
HSSFDataFormat 日期格式
Poi对表格。
0,0 0,1 0,2 0,3
1,0 1,1 1,2 1,3
2,0 2,1 2,2 2,3
四:代码:
1.创建对象:
try{
POIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:\test.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs);
} catch (IOException e) {
e.printStackTrace();
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short) 0);
String msg = cell.getStringCellValue();
2.poi判断表格长度不够准确,需要重新写过
3.单元格类型:cell.getCellType();常用的几种
HSSFCell.CELL_TYPE_BOOLEAN:
HSSFCell.CELL_TYPE_FORMULA:
HSSFCell.CELL_TYPE_NUMERIC:
HSSFCell.CELL_TYPE_STRING:
不同类型的单元格赋值会出错
注:setColumnHidden函数要有效,setColumnWidth要相同的宽度。
4. 将生成的表格文件保存到磁盘中。
File file = new File(“d:\test.xls”);
FileOutputStream fileOut = new FileOutputStream(file);
Wb.write(fileOut);
fileOut.flush();
fileOut.close();
poi操作相关代码。Poi.java,POIUtils.java