Java 导出 Excel 多个 Sheet 内容 - Apache POI 库示例
Java 代码可以使用 Apache POI 库来导出多个 Sheet 的 Excel 文件。下面是一个示例代码:\n\njava\nimport org.apache.poi.ss.usermodel.*;\nimport org.apache.poi.xssf.usermodel.XSSFWorkbook;\n\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\npublic class ExcelExporter {\n public static void main(String[] args) {\n try (Workbook workbook = new XSSFWorkbook()) {\n createSheet1(workbook);\n createSheet2(workbook);\n createSheet3(workbook);\n \n // 保存 Excel 文件\n try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {\n workbook.write(outputStream);\n }\n } catch (IOException e) {\n e.printStackTrace();\n }\n }\n\n private static void createSheet1(Workbook workbook) {\n Sheet sheet = workbook.createSheet("Sheet1");\n\n // 创建表头行\n Row headerRow = sheet.createRow(0);\n Cell headerCell1 = headerRow.createCell(0);\n headerCell1.setCellValue("Name");\n Cell headerCell2 = headerRow.createCell(1);\n headerCell2.setCellValue("Age");\n\n // 创建数据行\n Row dataRow1 = sheet.createRow(1);\n Cell dataCell1 = dataRow1.createCell(0);\n dataCell1.setCellValue("John");\n Cell dataCell2 = dataRow1.createCell(1);\n dataCell2.setCellValue(30);\n\n Row dataRow2 = sheet.createRow(2);\n Cell dataCell3 = dataRow2.createCell(0);\n dataCell3.setCellValue("Jane");\n Cell dataCell4 = dataRow2.createCell(1);\n dataCell4.setCellValue(25);\n }\n\n private static void createSheet2(Workbook workbook) {\n Sheet sheet = workbook.createSheet("Sheet2");\n\n // 创建表头行\n Row headerRow = sheet.createRow(0);\n Cell headerCell1 = headerRow.createCell(0);\n headerCell1.setCellValue("City");\n Cell headerCell2 = headerRow.createCell(1);\n headerCell2.setCellValue("Population");\n\n // 创建数据行\n Row dataRow1 = sheet.createRow(1);\n Cell dataCell1 = dataRow1.createCell(0);\n dataCell1.setCellValue("New York");\n Cell dataCell2 = dataRow1.createCell(1);\n dataCell2.setCellValue(8622698);\n\n Row dataRow2 = sheet.createRow(2);\n Cell dataCell3 = dataRow2.createCell(0);\n dataCell3.setCellValue("Los Angeles");\n Cell dataCell4 = dataRow2.createCell(1);\n dataCell4.setCellValue(3990456);\n }\n\n private static void createSheet3(Workbook workbook) {\n Sheet sheet = workbook.createSheet("Sheet3");\n\n // 创建表头行\n Row headerRow = sheet.createRow(0);\n Cell headerCell1 = headerRow.createCell(0);\n headerCell1.setCellValue("Product");\n Cell headerCell2 = headerRow.createCell(1);\n headerCell2.setCellValue("Price");\n\n // 创建数据行\n Row dataRow1 = sheet.createRow(1);\n Cell dataCell1 = dataRow1.createCell(0);\n dataCell1.setCellValue("iPhone");\n Cell dataCell2 = dataRow1.createCell(1);\n dataCell2.setCellValue(999.99);\n\n Row dataRow2 = sheet.createRow(2);\n Cell dataCell3 = dataRow2.createCell(0);\n dataCell3.setCellValue("Samsung Galaxy");\n Cell dataCell4 = dataRow2.createCell(1);\n dataCell4.setCellValue(899.99);\n }\n}\n\n\n以上代码创建了一个包含三个 Sheet 的 Excel 文件,每个 Sheet 都有不同的表头和数据。最后,将 Excel 文件保存为 "output.xlsx"。\n\n为了使代码更具可读性,可以使用以下方法来提高代码的可维护性:\n1. 使用方法来封装创建 Sheet 的逻辑,可以将每个 Sheet 的创建代码封装到一个单独的方法中,例如:\njava\nprivate static Sheet createProductSheet(Workbook workbook) {\n Sheet sheet = workbook.createSheet("Products");\n // 创建表头和数据\n return sheet;\n}\n\n2. 使用常量来定义 Sheet 名和列名,这样可以提高代码的可读性和可维护性,例如:\njava\nprivate static final String PRODUCT_SHEET_NAME = "Products";\nprivate static final String PRODUCT_COLUMN_NAME = "Product";\nprivate static final String PRICE_COLUMN_NAME = "Price";\n\n3. 使用循环来简化代码,可以将创建多个 Sheet 的代码简化成一个循环,例如:\njava\nfor (int i = 1; i <= 3; i++) {\n Sheet sheet = workbook.createSheet("Sheet" + i);\n // 创建表头和数据\n}\n
原文地址: https://www.cveoy.top/t/topic/pwAF 著作权归作者所有。请勿转载和采集!