Apache POI使用

一、简介

  Apache POI是由Apache公司提佛那个的Java编写的免费开源的跨平台Java API,提供对Microsoft Office格式文件的读和写的功能。

二、需要引入的依赖


  org.apache.poi
  poi
  3.17



  org.apache.poi
  poi-ooxml
  3.17



  org.apache.poi
  poi-ooxml-schemas
  3.17

三、POI常用的类

  • HSSF - 提供读写Microsoft Excel XLS格式档案的功能。
  • XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
  • HWPF - 提供读写Microsoft Word DOC97格式档案的功能。
  • XWPF - 提供读写Microsoft Word DOC2003格式档案的功能。
  • HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
  • HDGF - 提供读Microsoft Visio格式档案的功能。
  • HPBF - 提供读Microsoft Publisher格式档案的功能。
  • HSMF - 提供读Microsoft Outlook格式档案的功能。

四、方法介绍

  Apache POI最常用的是对Excel文件的操作,操作Excel文件主要是使用以下两个类:

  • HSSFWorkbook : 这个类有读取和和写入.xls 格式Microsoft Excel文件的方法。它与微软Office97-2003版本兼容。
  • XSSFWorkbook : 这个类有读取和写入.xlsx格式Microsoft Excel文件和OpenOffice的XML文件的格式的方法。它与MS-Office版本2007或更高版本兼容。

HSSFWorkbook的常用方法和构造函数

构造函数 说明
HSSFWorkbook() 创建一个信息Excel文件
HSSFWorkbook(java.io.InputStream s) 读取IO流中的Excel文件
HSSFWorkbook(POIFSFileSystem fs) 读取POIFSFileSystem中的Excel文件
方法 返回值 说明
cloneSheet(int sheetIndex) HSSFSheet 复制一个已经存在的工作表,sheetIndex:工作表下标
close() void 关闭工作簿
createCellStyle() HSSFCellStyle 创建一个信息单元格样式,并将它添加到工作簿的样式表中
createDataFormat() HSSFDataFormat 返回此工作簿的HSSFDataFormat实例
createFont() HSSFFont 创建一个新的字体并添加到工作簿的字体表中
createSheet() HSSFSheet 创建一个工作表
createSheet(java.lang.String sheetname) HSSFSheet 创建一个工作表,同时指定工作表名称
getCellStyleAt(int idx) HSSFCellStyle 获取给定索引处的单元格样式对象
getFontAt(short idx) HSSFFont 获取给定索引处的字体
getSheet(java.lang.String name) HSSFSheet 获取指定名称的工作表(不区分大小写)
getSheetAt(int index) HSSFSheet 获取指定索引处的工作表
getSheetName(int sheetIndex) String 获取指定索引处的工作表名称
removeSheetAt(int index) void 删除指定索引对应的工作表
setSheetName(int sheetIx, java.lang.String name) void 设置指定索引对应的工作表的名称

XSSFWorkbook的常用方法和构造函数

五、具体操作

  1. 读取 .xlsx 类型的文件
//1. 获取工作簿
XSSFWorkbook workbook = new XSSFWordbook("文件路径");
//2. 获取工作表sheet
XSSFSheet sheet = workbook.getSheetAt(0);
//3. 获取行
for(Row row : sheet ) {
    //4. 获取单元格
    String value = cell.getStringCellValue();
    //注意:获取单元格数据时,获取得数据类型要匹配。如果不知道什么类型,可以先把该单元格类型设置为String类型(cell.setCellType(CellType.STRING);),在通过getStringCellValue() 方法获取。
}
//5. 释放资源
workbook.close();
  1. 创建 .xlsx 类型的文件
//1. 创建工作簿
XSSFWorkbook workbook = new XSSFWordbook();
//2. 创建工作表
XSSFSheet sheet = workbook.createSheet("sheet1");
//3. 创建行
XSSFRow row = sheet.createRow(0);
//4. 创建单元格
row.createCell(0).setCellValue("第1行的第1个单元格");
row.createCell(1).setCellValue("第1行的第2个单元格");
//5. 通过输出流,把创建的文件保存到指定目录下
FileOutputStream out = new FileOutputStream("文件路径\\文件名.xlsx");
workbook.write(out);
out.flush();
//释放资源
out.close();
workbook.close();

待更新...

你可能感兴趣的:(Apache POI使用)