«Рекомендация для начинающих» простой и эффективный инструмент экспорта в Excel

Java

EasyExcel

EasyExcel — это простой и экономичный проект с открытым исходным кодом для чтения и записи Excel на основе Java. В случае максимально возможной экономии памяти поддерживает чтение и запись сотен M Excel. Память 64 МБ может прочитать 75 МБ (46 Вт строк и 25 столбцов) Excel в течение 1 минуты.Конечно, есть также быстрый режим, который может быть быстрее, но использование памяти будет чуть больше 100 МБ.

Spring Boot Starter зависимости

  • Простота использования в веб-средеeasyexcel, загруженный в репозиторий maven
<dependency>
<groupId>com.pig4cloud.excel</groupId>
<artifactId>excel-spring-boot-starter</artifactId>
<version>0.0.2</version>
</dependency>

инструкции

просто нужноControllerСлой возвращает список и увеличивает@ResponseExcelПросто аннотируйте

@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ResponseExcel {
String name() default "";
ExcelTypeEnum suffix() default ExcelTypeEnum.XLSX;
String password() default "";
String[] sheet() default {};
boolean inMemory() default false;
String template() default "";
String[] include() default {};
String[] exclude() default {};
Class<? extends WriteHandler>[] writeHandler() default {};
Class<? extends Converter>[] converter() default {};
}

Основное использование

  • ВозвращениеsheetЭкспорт всех полей
@ResponseExcel(name = "lengleng", sheet = "demoList")
@GetMapping("/e1")
public List<DemoData> e1() {
List<DemoData> dataList = new ArrayList<>();
for (int i = 0; i < 100; i++) {
DemoData data = new DemoData();
data.setUsername("tr1" + i);
data.setPassword("tr2" + i);
dataList.add(data);
}
return dataList;
}
// 实体对象

@Data
public class DemoData {
private String username;
private String password;
}

  • свойства настраиваемого поля
@Data
public class DemoData {
@ColumnWidth(50) // 定义宽度
@ExcelProperty("用户名") // 定义列名称
@ContentStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillForegroundColor = 40)
private String username;
@ExcelProperty("密码")
private String password;
}
  • Игнорировать некоторые поля
@Data
public class DemoData {
@ColumnWidth(50) // 定义宽度
@ExcelProperty("用户名") // 定义列名称
@ContentStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillForegroundColor = 40)
private String username;
@ExcelProperty("密码")
private String password;
}

Экспорт нескольких листов

@ResponseExcel(name = "lengleng", sheet = {"第一个sheet","第二个sheet"})
@GetMapping("/e1")
public List<List<DemoData>> e1() {
List<List<DemoData>> lists = new ArrayList<>();
lists.add(list());
lists.add(list());
return lists;
}

Установить пароль шифрования экспорта

	@ResponseExcel(name = "lengleng", sheet = "sheetName",password = "lengleng")
@GetMapping("/e1")
public List<List<DemoData>> e1() {
List<List<DemoData>> lists = new ArrayList<>();
lists.add(list());
lists.add(list());
return lists;
}

Расширенный экспорт шаблона использования

@ResponseExcel(name = "模板测试excel", sheet = "sheetName",template = "example.xlsx")
@GetMapping("/e1")
public List<DemoData> e1() {
return list();
}

Другое использование

"★★★★★" Система управления разрешениями RBAC на основе Spring Boot 2.2, Spring Cloud Hoxton & Alibaba, OAuth2

image