Ниже приведен пример Readme для проекта с открытым исходным кодом excel-spring-boot-starter созданного на основе предоставляемого вами контента:
excel-spring-boot-starter -это старший стартер Spring Boot, основанный на реализации EasyExcel , используемой для упрощения операций чтения и записи Excel. EasyExcel - это проект с открытым исходным кодом Java, предназначенный для чтения и записи файлов Excel с минимальным возможным потреблением памяти. EasyExcel позволяет читать 75 м (460 000 строк, 25 столбцов) файлов Excel за 1 минуту с памятью всего 64 м.
Проект был загружен в Центральный репозиторий Maven и может использоваться, просто введя следующие зависимости:
| Версия | Поддерживаемая версия |
|---|---|
| 3.3.1 | Адаптироваться к Spring Boot 3.x |
| 1.2.7 | Адаптироваться к Spring Boot 2.x |
Добавьте следующие зависимости в pom.xml :
< dependency >
< groupId >com.pig4cloud.excel</ groupId >
< artifactId >excel-spring-boot-starter</ artifactId >
< version >${lastVersion}</ version >
</ dependency > Вы можете получить загруженный файл Excel и разобрать его в списке объектов Java, используя аннотацию @RequestExcel в методе интерфейса:
@ PostMapping ( "/upload" )
public void upload ( @ RequestExcel List < DemoData > dataList , BindingResult bindingResult ) {
// JSR 303 校验通用校验获取失败的数据
List < ErrorMessage > errorMessageList = ( List < ErrorMessage >) bindingResult . getTarget ();
} Вам нужно сначала определить класс объектов, соответствующий таблице Excel, и использовать аннотацию @ExcelProperty чтобы аннотировать индекс столбца Excel:
@ Data
public class Demo {
@ ExcelProperty ( index = 0 )
private String username ;
@ ExcelProperty ( index = 1 )
private String password ;
}На следующем рисунке показана таблица Excel, соответствующая вышеуказанному классу объектов:
Вам просто нужно вернуть List в методе контроллера и использовать аннотацию @ResponseExcel для экспорта данных в файл Excel:
@ Documented
@ Target ( ElementType . METHOD )
@ Retention ( RetentionPolicy . RUNTIME )
public @interface ResponseExcel {
String name () default "" ;
ExcelTypeEnum suffix () default ExcelTypeEnum . XLSX ;
String password () default "" ;
Sheet [] sheets () default @ Sheet ( sheetName = "sheet1" );
boolean inMemory () default false ;
String template () default "" ;
String [] include () default {};
String [] exclude () default {};
Class <? extends WriteHandler >[] writeHandler () default {};
Class <? extends Converter >[] converter () default {};
Class <? extends HeadGenerator > headGenerator () default HeadGenerator . class ;
}Для получения более подробных инструкций, пожалуйста, обратитесь к документу: https://www.yuque.com/pig4cloud/ogf9nv