Java实现Excel导出功能
在Java开发中,我们经常需要将数据导出到Excel文件中,以便于数据的查看和分析,Java提供了多种方式来实现Excel的导出功能,其中最常用的是Apache POI库,本文将详细介绍如何使用Java和Apache POI库实现Excel的导出功能。
我们需要在项目中引入Apache POI库,如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency>
接下来,我们创建一个Java类,用于实现Excel的导出功能,在这个类中,我们将定义一个方法,该方法接收一个List对象作为参数,然后将这个List中的数据导出到Excel文件中。
import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; public class ExcelExporter { public void exportToExcel(List<String[]> data, String fileName) { Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); // 创建表头 Row headerRow = sheet.createRow(0); for (int i = 0; i < data.get(0).length; i++) { Cell cell = headerRow.createCell(i); cell.setCellValue(data.get(0)[i]); } // 填充数据 for (int i = 1; i < data.size(); i++) { Row row = sheet.createRow(i); for (int j = 0; j < data.get(i).length; j++) { Cell cell = row.createCell(j); cell.setCellValue(data.get(i)[j]); } } // 自动调整列宽 for (int i = 0; i < data.get(0).length; i++) { sheet.autoSizeColumn(i); } // 将数据写入文件 try (FileOutputStream fileOut = new FileOutputStream(fileName)) { workbook.write(fileOut); } catch (IOException e) { e.printStackTrace(); } finally { try { workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } }
现在,我们可以使用这个ExcelExporter
类来将数据导出到Excel文件中,我们可以创建一个包含一些数据的List对象,然后调用exportToExcel
方法将其导出到Excel文件中。
import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String[]> data = Arrays.asList(new String[]{"姓名", "年龄", "性别"}, new String[]{"张三", "25", "男"}, new String[]{"李四", "30", "女"}); ExcelExporter exporter = new ExcelExporter(); exporter.exportToExcel(data, "output.xlsx"); } }
运行上述代码后,会在项目根目录下生成一个名为output.xlsx
的Excel文件,其中包含了我们刚刚导出的数据。
还没有评论,来说两句吧...