Экспорт файлов Excel с помощью Spring Boot: методы и примеры кода

Экспорт данных в формат Excel является общим требованием во многих приложениях. В этой статье блога мы рассмотрим различные методы экспорта файлов Excel с помощью Spring Boot. Мы также обсудим, как обрабатывать возможные ответы об ошибках HTTP во время процесса экспорта. Для лучшего понимания каждый метод будет сопровождаться примерами кода.

Метод 1: Apache POI
Apache POI — это популярная библиотека Java, используемая для работы с форматами Microsoft Office. Чтобы экспортировать файлы Excel с помощью Spring Boot с использованием Apache POI, вы можете выполнить следующие действия:

  1. Добавьте зависимости Apache POI в конфигурацию сборки вашего проекта.
  2. Создайте новый контроллер Spring MVC или конечную точку REST для обработки запроса на экспорт.
  3. Внутри контроллера инициализируйте новый объект Workbook из библиотеки Apache POI.
  4. Заполните книгу данными, полученными из источника данных вашего приложения.
  5. Запишите рабочую книгу в поток вывода ответа с соответствующим типом контента и заголовками.

Вот пример фрагмента кода:

// Import necessary classes
import org.apache.poi.ss.usermodel.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ExcelExportController {
    @GetMapping("/export")
    public ResponseEntity<byte[]> exportExcel() {
        try {
            Workbook workbook = new XSSFWorkbook();
            // Populate the workbook with data
            // ...
            // Prepare response headers
            HttpHeaders headers = new HttpHeaders();
            headers.add("Content-Disposition", "attachment; filename=export.xlsx");
            // Convert workbook to byte array
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            workbook.write(outputStream);
            return new ResponseEntity<>(outputStream.toByteArray(), headers, HttpStatus.OK);
        } catch (Exception e) {
            // Handle error response
            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }
}

Метод 2: EasyExcel
EasyExcel — еще одна мощная библиотека, которая упрощает экспорт Excel в Java. Чтобы использовать EasyExcel с Spring Boot, вы можете выполнить следующие действия:

  1. Включите зависимость EasyExcel в свой проект.
  2. Создайте новый контроллер или конечную точку REST для обработки запроса на экспорт.
  3. Внутри контроллера используйте библиотеку EasyExcel, чтобы создать новый ExcelWriter.
  4. Запись данных в ExcelWriter с помощью API-интерфейсов EasyExcel.
  5. Закройте ExcelWriter и запишите полученный файл в поток вывода ответа.

Вот пример фрагмента кода:

// Import necessary classes
import com.alibaba.excel.EasyExcel;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ExcelExportController {
    @GetMapping("/export")
    public ResponseEntity<byte[]> exportExcel() {
        try {
            // Create ExcelWriter
            String fileName = "export.xlsx";
            ExcelWriter excelWriter = EasyExcel.write(fileName).build();
            // Write data to ExcelWriter
            // ...
            // Prepare response headers
            HttpHeaders headers = new HttpHeaders();
            headers.add("Content-Disposition", "attachment; filename=" + fileName);
            // Write Excel file to byte array
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            excelWriter.finish();
            outputStream.writeTo(outputStream);
            return new ResponseEntity<>(outputStream.toByteArray(), headers, HttpStatus.OK);
        } catch (Exception e) {
            // Handle error response
            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }
}

В этой статье блога мы рассмотрели два метода экспорта файлов Excel с помощью Spring Boot: Apache POI и EasyExcel. Оба метода предоставляют мощные функции для создания файлов Excel на основе данных вашего приложения. Кроме того, мы обсудили, как обрабатывать возможные ответы об ошибках HTTP во время процесса экспорта. Используя эти методы и прилагаемые примеры кода, вы можете легко экспортировать файлы Excel с помощью Spring Boot в свои приложения.