Pre Merge pull request !625 from AprilWind/dev-excel

This commit is contained in:
AprilWind 2024-12-24 03:04:28 +00:00 committed by Gitee
commit c08f18dfa5
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -186,6 +186,23 @@ public class ExcelUtil {
*/
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, boolean merge,
OutputStream os, List<DropDownOptions> options) {
exportExcel(list, sheetName, clazz, merge, os, options, null);
}
/**
* 导出Excel支持自定义字段列选择
*
* @param list 导出数据集合
* @param sheetName 工作表的名称
* @param clazz 实体类用于定义Excel列的映射
* @param merge 是否合并单元格
* @param os 输出流用于将生成的Excel写入指定位置
* @param options 下拉框选项配置
* @param fieldNames 自定义导出的字段名称集合可控制导出的列范围
* @param <T> 数据类型的泛型
*/
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, boolean merge,
OutputStream os, List<DropDownOptions> options, List<String> fieldNames) {
ExcelWriterSheetBuilder builder = EasyExcel.write(os, clazz)
.autoCloseStream(false)
// 自动适配
@ -194,6 +211,9 @@ public class ExcelUtil {
.registerConverter(new ExcelBigNumberConvert())
.registerWriteHandler(new DataWriteHandler(clazz))
.sheet(sheetName);
if (CollUtil.isNotEmpty(fieldNames)) {
builder.includeColumnFieldNames(fieldNames);
}
if (merge) {
// 合并处理器
builder.registerWriteHandler(new CellMergeStrategy(list, true));