Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java导出Excel


在 Java 中导出 Excel 可以使用多种方式,包括使用原生 Java 库、使用第三方库,如 Apache POI、使用开源工具,如 JExcelApi,以及使用现代框架,如 Spring Boot。下面我将介绍其中几种方法的步骤流程和示例代码,包括 Apache POI 和 Spring Boot。

使用 Apache POI 导出 Excel

Apache POI 是一个强大的 Java 库,用于创建、读取和修改 Microsoft Office 格式的文档,包括 Excel。以下是使用 Apache POI 导出 Excel 的步骤:

步骤 1:添加 Apache POI 依赖

在项目的 Maven 或 Gradle 配置文件中添加 Apache POI 的依赖坐标:

Maven:

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

Gradle:

implementation group: 'org.apache.poi', name: 'poi', version: '4.1.2'

步骤 2:创建 Excel 工作簿和工作表

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

public class ExcelExportExample {

    public static void main(String[] args) {
        // 创建新的工作簿
        Workbook workbook = new XSSFWorkbook();

        // 创建工作表
        Sheet sheet = workbook.createSheet("Sheet1");

        // 创建行
        Row headerRow = sheet.createRow(0);

        // 创建单元格并设置标题
        Cell headerCell = headerRow.createCell(0);
        headerCell.setCellValue("姓名");

        headerCell = headerRow.createCell(1);
        headerCell.setCellValue("年龄");

        // 创建数据行
        Row dataRow = sheet.createRow(1);

        // 设置数据
        Cell dataCell = dataRow.createCell(0);
        dataCell.setCellValue("John");

        dataCell = dataRow.createCell(1);
        dataCell.setCellValue(30);

        // 写入到文件或输出流中
        try (FileOutputStream fileOut = new FileOutputStream("example.xlsx")) {
            workbook.write(fileOut);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这个示例代码创建了一个 Excel 工作簿、一个工作表,以及一些标题和数据。然后,它将工作簿写入名为"example.xlsx"的 Excel 文件中。

使用 Spring Boot 导出 Excel

如果你使用 Spring Boot,你可以利用 Spring 框架的特性来更容易地导出 Excel。以下是使用 Spring Boot 导出 Excel 的步骤:

步骤 1:添加 Spring Boot Starter 依赖

在 Spring Boot 项目的 Maven 或 Gradle 配置文件中添加 Spring Boot Starter 依赖坐标:

Maven:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Gradle:

implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web'

步骤 2:创建一个 Controller 来处理 Excel 导出请求

import org.apache.poi.ss.usermodel.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@RestController
@RequestMapping("/export")
public class ExcelExportController {

    @GetMapping("/excel")
    public void exportExcel(HttpServletResponse response) throws IOException {
        // 创建新的工作簿
        Workbook workbook = new XSSFWorkbook();

        // 创建工作表
        Sheet sheet = workbook.createSheet("Sheet1");

        // 创建行
        Row headerRow = sheet.createRow(0);

        // 创建单元格并设置标题
        Cell headerCell = headerRow.createCell(0);
        headerCell.setCellValue("姓名");

        headerCell = headerRow.createCell(1);
        headerCell.setCellValue("年龄");

        // 创建数据行
        Row dataRow = sheet.createRow(1);

        // 设置数据
        Cell dataCell = dataRow.createCell(0);
        dataCell.setCellValue("John");

        dataCell = dataRow.createCell(1);
        dataCell.setCellValue(30);

        // 设置响应头
        response.setHeader("Content-Disposition", "attachment; filename=example.xlsx");
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

        // 写入响应流
        workbook.write(response.getOutputStream());
    }
}

这个示例代码创建了一个 Spring Boot 控制器,它可以处理 Excel 导出请求。当访问 /export/excel 时,它会生成一个包含示例数据的 Excel 文件,并将其写入响应流中,使浏览器下载。

这些是两种常见的 Java 导出 Excel 的方法,你可以根据你的项目需求选择其中之一。

在Java中实现Excel导出有多种方式,以下是几种常见的实现方式以及它们的步骤流程、依赖坐标和示例代码。添加依赖:*Maven:*Grad ...
以下是一些常见的实现方式,包括使用ApachePOI和EasyExcel这两个常用的Java第三方库。从Excel文件导入数据###Mave ...
在Java中使用EasyExcel来导出Excel文件是一种方便且高效的方法。###方式一:基本导出方式这种方式适用于简单的导出场景,只需要 ...
在Java中导出百万级的Excel数据有多种实现方式,下面我将为你介绍几种常用的方式,包括使用ApachePOI、EasyExcel和JEx ...
在Java中导出PDF可以使用不同的方式,以下是几种常见的实现方式以及它们的步骤流程、依赖坐标和示例代码。Maven依赖:Gradle依赖: ...