最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

EasyExcel自定義導(dǎo)出列和順序?qū)嵗a

 更新時間:2023年07月20日 15:42:42   作者:是攀不是潘  
這篇文章主要給大家介紹了關(guān)于EasyExcel自定義導(dǎo)出列和順序的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下

EasyExcel 自定義導(dǎo)出列和順序

該功能需要前后端進(jìn)行銜接 。前端需要傳輸兩個集合,后端可以封裝到一個對象中進(jìn)行接收

集合1: List headList

集合2: List columnList 【對應(yīng)后端實體類需要導(dǎo)出的字段】

代碼塊

前端可選擇導(dǎo)出的列數(shù)和順序

1. 實體類

@Data
	public class ScenicAnalysis extends BaseEntity{
	    private static final long serialVersionUID = 1L;
	    //需要導(dǎo)出的列的集合
	    private List<String> columnList;
	    //需要導(dǎo)出的列的集合
	    private List<String> headList;
	}

2. 控制層

    @PostMapping("/exportColumn")
    public void exportColumn(HttpServletResponse response, @RequestBody ScenicAnalysis scenicAnalysis) {
        scenicAnalysisService.exportColumn(response,scenicAnalysis);
    }

3. 方法層

    public void  exportColumn(HttpServletResponse response, ScenicAnalysis scenicAnalysis) {
        //根據(jù)自己的業(yè)務(wù)邏輯生成對應(yīng)的List<Object>類型的集合
        List<Object> list = new ArrayList<>();
        try {
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            response.setCharacterEncoding("utf-8");
            //控制 導(dǎo)出字段 未控制順序
            EasyExcel.write(response.getOutputStream(), ScenicAnalysis.class)
                    .head(head(scenicAnalysis.getHeadList()))
                    .includeColumnFiledNames(scenicAnalysis.getColumnList())
                    .sheet("模板")
                    .doWrite(dataList(list,scenicAnalysis.getColumnList()));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

4. 公共方法 (直接使用)

4.1 設(shè)置表頭

    /**
   * 設(shè)置Excel頭
   * @param headList  Excel頭信息
   * @return
   */
  private static List<List<String>> head(List<String> headList) {
      List<List<String>> list = new ArrayList<>();
      for (String value : headList) {
          List<String> head = new ArrayList<>();
          head.add(value);
          list.add(head);
      }
      return list;
  }

4.2 設(shè)置表格信息

  /**
  * 設(shè)置表格信息
  * @param dataList  查詢出的數(shù)據(jù)
  * @param fileList  需要顯示的字段
  * @return
  */
 private static List<List<Object>> dataList(List<Object> dataList, List<String> fileList) {
     List<List<Object>> list = new ArrayList<>();
     for (Object person : dataList) {
         List<Object> data = new ArrayList<>();
         for (String fieldName : fileList) {
             /**通過反射根據(jù)需要顯示的字段,獲取對應(yīng)的屬性值*/
             data.add(getFieldValue(fieldName, person));
         }
         list.add(data);
     }
     return list;
 }

4.3 根據(jù)字段生成對應(yīng)的get方法

    /**
   * 根據(jù)傳入的字段獲取對應(yīng)的get方法,如name,對應(yīng)的getName方法
   * @param fieldName  字段名
   * @param person    對象
   * @return
   */
  private static Object getFieldValue(String fieldName, Object person) {
      try {
          String firstLetter = fieldName.substring(0, 1).toUpperCase();
          String getter = "get" + firstLetter + fieldName.substring(1);
          Method method = person.getClass().getMethod(getter);
          return method.invoke(person);
      } catch (Exception e) {
          return null;
      }
  }

以上可根據(jù)自己的業(yè)務(wù)需求進(jìn)行相應(yīng)調(diào)整

導(dǎo)出結(jié)果

總結(jié)

到此這篇關(guān)于EasyExcel自定義導(dǎo)出列和順序的文章就介紹到這了,更多相關(guān)EasyExcel自定義導(dǎo)出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中ArrayList單行初始化的多種方法

    Java中ArrayList單行初始化的多種方法

    在Java開發(fā)中,我們經(jīng)常需要初始化列表,尤其是ArrayList,用于存儲和管理數(shù)據(jù),為了提高代碼的簡潔性和可讀性,我們希望能在一行代碼內(nèi)完成ArrayList的初始化,本文將介紹多種在Java中單行初始化ArrayList的方法,需要的朋友可以參考下
    2025-07-07
  • Redis集群與SSM整合使用方法

    Redis集群與SSM整合使用方法

    這篇文章主要介紹了Redis集群與SSM整合使用方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-12-12
  • mybatis-plus分頁無效問題解決

    mybatis-plus分頁無效問題解決

    本文主要介紹了mybatis-plus分頁無效問題解決,原因是配置分頁插件的版本問題,舊版本和新版本的MyBatis-Plus需要不同的分頁配置,感興趣的可以了解一下
    2025-03-03
  • Spring中@EnableScheduling實現(xiàn)定時任務(wù)代碼實例

    Spring中@EnableScheduling實現(xiàn)定時任務(wù)代碼實例

    這篇文章主要介紹了Spring中@EnableScheduling實現(xiàn)定時任務(wù)代碼實例,@EnableScheduling 注解開啟定時任務(wù)功能,可以將多個方法寫在一個類,也可以分多個類寫,當(dāng)然也可以將方法直接寫在上面ScheddulConfig類中,需要的朋友可以參考下
    2024-01-01
  • java數(shù)組、泛型、集合在多態(tài)中的使用及對比

    java數(shù)組、泛型、集合在多態(tài)中的使用及對比

    本文主要介紹了java數(shù)組、泛型、集合在多態(tài)中的使用及對比。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • springboot 如何修改默認(rèn)端口及application.properties常用配置

    springboot 如何修改默認(rèn)端口及application.properties常用配置

    這篇文章主要介紹了springboot 如何修改默認(rèn)端口及application.properties常用配置操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot集成Redis及SpringCache緩存管理示例詳解

    SpringBoot集成Redis及SpringCache緩存管理示例詳解

    本文介紹了如何在SpringBoot中集成Redis并使用SpringCache進(jìn)行緩存管理,詳解了Redis的配置、使用以及SpringCache的注解,還闡述了SpringCache的工作原理,包括其AOP實現(xiàn)和與各種緩存框架的集成,使得開發(fā)者可以輕松實現(xiàn)緩存功能,以提高應(yīng)用性能
    2024-09-09
  • Spring中@RestController和@Controller的使用及區(qū)別

    Spring中@RestController和@Controller的使用及區(qū)別

    這篇文章主要介紹了Spring中@RestController和@Controller的使用及區(qū)別,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 在寶塔面板中安裝OpenJDK-17的3種方法步驟

    在寶塔面板中安裝OpenJDK-17的3種方法步驟

    OpenJDK 17是Java Development Kit (JDK)的一個開源實現(xiàn),由OpenJDK社區(qū)維護(hù),JDK是用于開發(fā)和運行Java應(yīng)用程序的核心工具包,這篇文章主要介紹了在寶塔面板中安裝OpenJDK-17的3種方法步驟,需要的朋友可以參考下
    2025-07-07
  • 深入剖析Java ArrayQueue(JDK)的源碼

    深入剖析Java ArrayQueue(JDK)的源碼

    本篇文章主要給大家介紹一個比較簡單的JDK為我們提供的容器ArrayQueue,這個容器主要是用數(shù)組實現(xiàn)的一個單向隊列,整體的結(jié)構(gòu)相對其他容器來說就比較簡單了,感興趣的可以了解一下
    2022-08-08

最新評論

瑞昌市| 慈溪市| 称多县| 丰城市| 米泉市| 阜阳市| 黄大仙区| 精河县| 二连浩特市| 苍南县| 大荔县| 郑州市| 同心县| 遵义县| 中江县| 尉犁县| 东山县| 宽城| 瑞昌市| 通化市| 光山县| 安国市| 广汉市| 新巴尔虎右旗| 左云县| 黔西县| 金塔县| 乐都县| 金门县| 志丹县| 三穗县| 凤庆县| 安塞县| 和静县| 广宁县| 曲松县| 河间市| 雷州市| 张家港市| 龙门县| 建始县|