Java根据Workbook创建多个sheet

在Java的开发中,我们经常需要使用Excel来进行数据的存储和处理。而Apache POI是一个非常常用的Java API,可以用于读写Microsoft Office的文档格式文件,包括了对Excel的读写操作。本文将介绍如何使用Apache POI创建多个sheet的Workbook,并附带代码示例。

Apache POI简介

Apache POI是Apache软件基金会的一个开源项目,提供了用于读写Microsoft Office格式文件的Java API。这个项目主要包含了以下几个子项目:

  • POI,提供了对Office文档的读写操作。
  • POI-OOXML,提供了对Office OpenXML格式(即docx、xlsx、pptx等)的读写操作。
  • POI-HSSF,提供了对Excel 97-2003格式(即xls)的读写操作。
  • POI-XSSF,提供了对Excel 2007及以上版本格式的读写操作。

在本文中,我们将使用POI-XSSF来创建多个sheet的Workbook。

创建Workbook对象

首先,我们需要创建一个Workbook对象来表示整个Excel文件。Workbook是POI中的一个核心类,可以用于创建和管理sheet。

我们可以使用以下代码来创建一个XSSFWorkbook对象:

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;

public class CreateWorkbook {
    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook();
        
        // TODO: 添加sheet和内容
        
        // 保存Workbook到文件
        // ...
    }
}

在上面的代码中,我们通过new XSSFWorkbook()来创建一个XSSFWorkbook对象。XSSFWorkbook是POI-XSSF中的一个类,用于创建Excel 2007及以上版本格式的Workbook。

创建Sheet对象

接下来,我们可以使用Workbook对象来创建新的sheet。每个sheet都是一个Sheet对象,可以用于添加和管理每个sheet中的内容。

我们可以使用以下代码来创建一个新的Sheet对象:

import org.apache.poi.ss.usermodel.Sheet;

public class CreateSheet {
    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook();
        
        // 创建一个名为"Sheet1"的sheet
        Sheet sheet1 = workbook.createSheet("Sheet1");
        
        // TODO: 添加内容到sheet1
        
        // 创建一个名为"Sheet2"的sheet
        Sheet sheet2 = workbook.createSheet("Sheet2");
        
        // TODO: 添加内容到sheet2
        
        // 保存Workbook到文件
        // ...
    }
}

在上面的代码中,我们通过调用Workbook对象的createSheet()方法来创建一个新的Sheet对象。createSheet()方法接受一个字符串参数,用于指定sheet的名称。

添加内容到Sheet

创建了Sheet对象后,我们可以使用它来添加内容到每个sheet中。

以下是一个示例,演示如何向sheet中添加数据:

import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;

public class AddDataToSheet {
    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook();
        
        // 创建一个名为"Sheet1"的sheet
        Sheet sheet1 = workbook.createSheet("Sheet1");
        
        // 创建行和单元格
        Row row = sheet1.createRow(0);
        Cell cell1 = row.createCell(0);
        Cell cell2 = row.createCell(1);
        
        // 设置单元格的值
        cell1.setCellValue("姓名");
        cell2.setCellValue("年龄");
        
        // 创建下一行和单元格
        Row row2 = sheet1.createRow(1);
        Cell cell3 = row2.createCell(0);
        Cell cell4 = row2.createCell(1);
        
        // 设置单元格的值
        cell3.setCellValue("张三");
        cell4.setCellValue(18);
        
        // 创建一个名为"Sheet2"的sheet
        Sheet sheet2 = workbook.createSheet("Sheet2");
        
        // TODO: 添加内容到sheet2
        
        // 保存Workbook到文件
        // ...
    }
}

在上面的代码中,我们通过调用Sheet对象的createRow()createCell()方法来创建行和单元格。然后,我们可以使用setCellValue()方法来设置单元格的值。

保存Workbook到文件

最后,我们需要将Workbook保存到文件中。

以下是一个示例,演示如何将Workbook保存到文件:

import org.apache.poi.ss