
excel
Apache POI - 写入 excel 模板而不覆盖现有单元格格式
Apache POI 是一款用于处理 Microsoft Office 格式文件的开源 Java 库。它提供了许多功能,包括读取、写入和修改 excel 文件。在使用 Apache POI 编写 excel 文件时,有时我们需要在已存在的模板中进行数据填充,而又不希望覆盖现有单元格的格式。本文将介绍如何使用 Apache POI 实现这一功能,并提供相应的案例代码。首先,我们需要创建一个新的 excel 文档,并加载已存在的模板。下面是创建 excel 文档的代码示例:Javaimport org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class excelWriter { public static void mAIn(String[] args) throws Exception { // 加载已存在的模板 Workbook workbook = new XSSFWorkbook("template.xlsx"); // 创建新的工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 在工作表中填充数据 Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setcellValue("Hello, World!"); // 保存 excel 文档 FileOutputStream fileOut = new FileOutputStream("output.xlsx"); workbook.write(fileOut); fileOut.close(); // 关闭工作簿 workbook.close(); }}上述代码中,我们使用 XSSFWorkbook 类加载已存在的模板,并创建一个新的工作表。然后,我们在工作表的第一行第一列单元格中填充了一条数据。最后,我们通过 FileOutputStream 将 excel 文档保存到本地,并使用 workbook.close() 关闭工作簿。接下来,我们需要处理已存在的模板,以确保新填充的数据不会覆盖现有单元格的格式。我们可以使用 CellUtil 类中的 copyCellStyle() 方法实现这一功能。下面是代码示例:Javaimport org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class excelWriter { public static void mAIn(String[] args) throws Exception { // 加载已存在的模板 Workbook workbook = new XSSFWorkbook("template.xlsx"); // 创建新的工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 在工作表中填充数据 Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setcellValue("Hello, World!"); // 复制模板单元格的格式 CellStyle templateCellStyle = workbook.getSheetAt(0).getRow(0).getcell(0).getcellStyle(); CellUtil.copyCellStyle(cell.getcellStyle(), templateCellStyle); // 保存 excel 文档 FileOutputStream fileOut = new FileOutputStream("output.xlsx"); workbook.write(fileOut); fileOut.close(); // 关闭工作簿 workbook.close(); }}在上述代码中,我们通过 workbook.getSheetAt(0).getRow(0).getcell(0).getcellStyle() 获取模板单元格的格式,并使用 CellUtil.copyCellStyle() 方法将其应用到新填充的单元格上。这样,新填充的数据就会继承模板单元格的格式,而不会覆盖现有的格式。Apache POI 是一个功能强大的 Java 库,可以方便地处理 excel 文件。通过使用 Apache POI,我们可以在已存在的 excel 模板中填充数据,而不会覆盖现有单元格的格式。本文提供了相应的代码示例,希望对你在使用 Apache POI 写入 excel 模板时有所帮助。请注意,在实际使用中,你需要根据具体的需求对代码进行适当的修改和调整。希望本文能够对你有所启发,祝你在使用 Apache POI 编写 excel 文件时取得成功!Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号