📜  Apache POI –电子表格(1)

📅  最后修改于: 2023-12-03 15:29:26.068000             🧑  作者: Mango

Apache POI - 电子表格

Apache POI是一个Java库,用于读取和写入各种Microsoft Office文件格式,例如Word文档,PowerPoint演示文稿和Excel电子表格。本文将着重介绍Apache POI中的电子表格部分。

简介

Apache POI中的电子表格部分主要包括三个类库:HSSF,XSSF和SXSSF。其中,HSSF用于读写Excel97-2003的.xls文件,XSSF用于读写Excel2007及以上版本的.xlsx文件,而SXSSF用于在内存中读写大型Excel文件。

Apache POI提供丰富的API,包括创建,读取和修改电子表格。还支持数据格式、样式、函数、图片等特性。此外,它也支持将电子表格转换为HTML和PDF格式。

创建电子表格

使用POI创建电子表格非常简单,只需按照以下步骤:

  1. 创建一个工作簿(Workbook),并创建一个工作表(Sheet)。
Workbook workbook = new XSSFWorkbook(); // 创建XSSFWorkbook工作簿
Sheet sheet = workbook.createSheet("Sheet1"); // 创建一个名称为"Sheet1"的工作表
  1. 创建行(Row)和单元格(Cell),并设置数据和样式
Row row = sheet.createRow(0); // 创建第一行
Cell cell = row.createCell(0); // 创建第一行的第一个单元格
cell.setCellValue("Hello, World!"); // 设置单元格的值
CellStyle style = workbook.createCellStyle(); // 创建样式
style.setFillForegroundColor(IndexedColors.YELLOW.getIndex()); // 设置背景颜色为黄色
cell.setCellStyle(style); // 应用样式到单元格
  1. 使用输出流(OutputStream)将电子表格写入文件中。
FileOutputStream fileOutputStream = new FileOutputStream("example.xlsx"); // 创建输出流
workbook.write(fileOutputStream); // 写入文件
fileOutputStream.close(); // 关闭输出流
读取电子表格

使用POI读取电子表格也非常容易,只需按照以下步骤:

  1. 创建一个工作簿(Workbook)对象,并打开文件读取
FileInputStream fileInputStream = new FileInputStream(new File("example.xlsx")); // 创建输入流
Workbook workbook = new XSSFWorkbook(fileInputStream); // 创建工作簿
  1. 获取工作表(Sheet)和行(Row)对象,并遍历单元格(Cell)对象
Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
Iterator<Row> rowIterator = sheet.iterator(); // 获取行迭代器
while (rowIterator.hasNext()) {
    Row row = rowIterator.next(); // 获取行对象
    Iterator<Cell> cellIterator = row.iterator(); // 获取单元格迭代器
    while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next(); // 获取单元格对象
        switch (cell.getCellType()) { // 判断单元格类型,根据类型读取数据
            case STRING:
                System.out.print(cell.getStringCellValue() + "\t"); // 字符串类型
                break;
            case NUMERIC:
                System.out.print(cell.getNumericCellValue() + "\t"); // 数字类型
                break;
            case BOOLEAN:
                System.out.print(cell.getBooleanCellValue() + "\t"); // 布尔类型
                break;
            default:
        }
    }
    System.out.println(); // 换行
}
  1. 关闭输入流
fileInputStream.close(); // 关闭输入流
修改电子表格

使用POI修改电子表格非常类似于读取电子表格,只需在读取单元格值后,使用setCellValue()方法修改单元格值即可。

sheet.getRow(0).getCell(0).setCellValue("Bonjour, le monde!"); // 修改第一行第一个单元格的值
结论

Apache POI是一个强大的Java库,用于读取和写入Microsoft Office文件格式,它的电子表格部分提供了丰富的API和功能,包括创建、读取和修改电子表格,支持数据格式、样式、函数、图片等特性,并支持将电子表格转换为HTML和PDF格式。无论是编写Java应用程序还是处理大量数据,都可以使用Apache POI轻松完成任务。