要使用SXSSFWorkbook类往Excel文件追加内容,需要先添加以下依赖坐标到你的项目中:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

下面是一个使用SXSSFWorkbook追加内容到Excel文件的示例代码:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;

public class AppendToExcel {

    public static void main(String[] args) {
        String filePath = "path/to/your/excel/file.xlsx";

        try (SXSSFWorkbook workbook = new SXSSFWorkbook()) {
            Sheet sheet = workbook.createSheet("Sheet1");

            // 创建行和单元格
            Row row = sheet.createRow(0);
            Cell cell = row.createCell(0);
            cell.setCellValue("Hello");

            // 追加内容到已存在的行
            for (int i = 1; i <= 10; i++) {
                Row existingRow = sheet.createRow(i);
                Cell existingCell = existingRow.createCell(0);
                existingCell.setCellValue("World " + i);
            }

            // 保存文件
            try (FileOutputStream outputStream = new FileOutputStream(filePath)) {
                workbook.write(outputStream);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这个示例代码会创建一个新的Excel文件,并在第一行第一列写入"Hello",然后在接下来的10行中追加内容"World 1"到"World 10"。

如果你遇到EmptyFileException异常,可能是因为你的Excel文件是空文件,没有内容。你可以在追加内容之前先判断文件是否为空,如果为空,则创建一个新的工作簿并添加内容。以下是一个处理EmptyFileException异常的示例代码:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class AppendToExcel {

    public static void main(String[] args) {
        String filePath = "path/to/your/excel/file.xlsx";

        File file = new File(filePath);

        SXSSFWorkbook workbook;
        if (file.exists() && file.length() > 0) {
            try (Workbook existingWorkbook = WorkbookFactory.create(file)) {
                if (existingWorkbook instanceof SXSSFWorkbook) {
                    workbook = (SXSSFWorkbook) existingWorkbook;
                } else {
                    workbook = new SXSSFWorkbook((XSSFWorkbook) existingWorkbook);
                }
            } catch (IOException e) {
                e.printStackTrace();
                return;
            }
        } else {
            workbook = new SXSSFWorkbook();
        }

        try {
            Sheet sheet = workbook.getSheet("Sheet1");
            if (sheet == null) {
                sheet = workbook.createSheet("Sheet1");
            }

            // 创建行和单元格
            Row row = sheet.createRow(0);
            Cell cell = row.createCell(0);
            cell.setCellValue("Hello");

            // 追加内容到已存在的行
            for (int i = 1; i <= 10; i++) {
                Row existingRow = sheet.createRow(i);
                Cell existingCell = existingRow.createCell(0);
                existingCell.setCellValue("World " + i);
            }

            // 保存文件
            try (FileOutputStream outputStream = new FileOutputStream(filePath)) {
                workbook.write(outputStream);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            workbook.dispose(); // 释放临时文件
        }
    }
}

这个示例代码会先判断文件是否存在且不为空,如果是,则使用现有的工作簿,否则创建一个新的工作簿

java往excel文件追加内容使用SXSSFWorkbook 具体代码+依赖坐标以及遇到EmptyFileException异常怎么处理才能继续追加内容?

原文地址: http://www.cveoy.top/t/topic/ilE7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录