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();
}
Другое использование
- теоретическая поддержкаalibaba/easyexcelБольшая часть конфигурации версии v2.1.6
- служба поддержкиalibaba/easyexcelСобственные аннотации конфигурации
- адрес статера github, который можно изменить форком