欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot使用jxls實現(xiàn)同sheet多個列表展示

 更新時間:2024年08月15日 10:37:25   作者:專注寫bug  
這篇文章主要介紹了Springboot使用jxls實現(xiàn)同sheet多個列表展示,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

在之前的文章中Springboot——使用jxls實現(xiàn)excel模板導出excel,具體說明了jxls框架的基本使用。

除了最簡單的單列表展示外,jxls還具有同sheet頁展示多個列表的能力,接下來一起繼續(xù)探究。

制定模板

1、限定模板數(shù)據(jù)的范圍

采取下面的批注,指定需要渲染顯示的報表范圍。

這里的范圍只考慮第一行的范圍!

命令如下所示:

jx:area(lastCell=”H15”)

2、設定報表展示項

報表一,只顯示單條數(shù)據(jù)。

報表二,進行列表展示,并設置批注,如下所示:

jx:each(items="dataList2" var="item" lastCell="C8")

報表三,與報表二中的批注一樣,只是接收參數(shù)變量名不同。

批注如下所示:

jx:each(items="dataList3" var="item" lastCell="C12")

編寫測試類

1、將xls模板文件放于 resource 下的 doc文件夾中

2、導入依賴文件

<!-- excel 填充 -->
<dependency>
    <groupId>org.jxls</groupId>
    <artifactId>jxls</artifactId>
    <version>2.8.1</version>
</dependency>
<dependency>
    <groupId>net.sf.jxls</groupId>
    <artifactId>jxls-core</artifactId>
    <version>1.0.6</version>
</dependency>
<dependency>
    <groupId>org.jxls</groupId>
    <artifactId>jxls-poi</artifactId>
    <version>2.8.1</version>
</dependency>

3、編寫接口和導出邏輯

@RequestMapping("/ss")
public void download(HttpServletRequest request,HttpServletResponse response) throws Exception {

    Map<String, Object> map = new HashMap();
    map.put("name1","xiangjiao");
    map.put("age1","10");
    map.put("are1","中國");

    // 報表二
    List<Map<String, Object>> dataList = new ArrayList();
    for (int i = 0; i < 10; i++) {
        Map<String, Object> params = new HashMap<>();
        params.put("name2","1_"+i);
        params.put("age2","xj_"+i);
        params.put("are2",22);
        dataList.add(params);
    }
    // ${item.num}
    map.put("dataList2",dataList);

    // 報表三
    List<Map<String, Object>> dataList3 = new ArrayList();
    for (int i = 0; i < 10; i++) {
        Map<String, Object> params = new HashMap<>();
        params.put("name2","1_"+i);
        params.put("age2","xj_"+i);
        params.put("are2",22);
        dataList3.add(params);
    }
    // ${item.num}
    map.put("dataList3",dataList3);

    export(map,"test.xls","666.xls",response);
}

public static void export(Map<String, Object> dataMap, String reportName,String fileName, HttpServletResponse response) throws IOException {
    Resource resource = new ClassPathResource("/doc" +File.separator+ reportName);
    InputStream in = resource.getInputStream();
    // 這里的context是jxls框架上的context內容
    Context context = PoiTransformer.createInitialContext();
    context.toMap().putAll(dataMap);
    Workbook workbook = WorkbookFactory.create(in);
    // Changing name of the first sheet
    workbook.setSheetName(0, "sheet1");
    PoiTransformer transformer = PoiTransformer.createTransformer(workbook);
    OutputStream out = response.getOutputStream();
    transformer.setOutputStream(out);

    // 文件名 - 解決中文亂碼問題
    String filename = URLEncoder.encode(fileName, "UTF-8");
    // 設置響應編碼
    response.setCharacterEncoding("UTF-8");
    response.setContentType("application/x-download");
    response.setHeader("Content-Disposition", "attachment;filename=" + filename);

    JxlsHelper.getInstance().processTemplate(context, transformer);
    in.close();

    out.flush();
    out.close();
}

效果預覽

結論

jxls能夠完美的實現(xiàn)樣式自定義、單數(shù)據(jù)、多報表集成。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • java實現(xiàn)多線程交替打印

    java實現(xiàn)多線程交替打印

    這篇文章主要為大家詳細介紹了java實現(xiàn)多線程交替打印,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Java Reference源碼解析

    Java Reference源碼解析

    這篇文章主要為大家詳細解析了Java Reference源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • springMVC獲取請求參數(shù)的幾種方式匯總

    springMVC獲取請求參數(shù)的幾種方式匯總

    在日常使用SpringMVC進行開發(fā)的時候,有可能遇到前端各種類型的請求參數(shù),這里做一次相對全面的總結,下面這篇文章主要給大家介紹了關于springMVC獲取請求參數(shù)的幾種方式,需要的朋友可以參考下
    2022-04-04
  • Windows10安裝IDEA 2020.1.2的方法步驟

    Windows10安裝IDEA 2020.1.2的方法步驟

    這篇文章主要介紹了Windows10安裝IDEA 2020.1.2的方法步驟,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Servlet+JavaBean+JSP打造Java Web注冊與登錄功能

    Servlet+JavaBean+JSP打造Java Web注冊與登錄功能

    比作MVC的話,控制器部分采用Servlet來實現(xiàn),模型部分采用JavaBean來實現(xiàn),而大部分的視圖采用Jsp頁面來實現(xiàn),接下來我們就來詳細看看如何用Servlet+JavaBean+JSP打造Java Web注冊與登錄功能
    2016-05-05
  • SpringMVC框架實現(xiàn)圖片上傳與下載

    SpringMVC框架實現(xiàn)圖片上傳與下載

    這篇文章主要為大家詳細介紹了SpringMVC框架實現(xiàn)圖片上傳與下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • SpringCache的基本使用方法

    SpringCache的基本使用方法

    Spring?Cache利用了AOP,實現(xiàn)了基于注解的緩存功能,并且進行了合理的抽象,業(yè)務代碼不用關心底層是使用了什么緩存框架,只需要簡單地加一個注解,就能實現(xiàn)緩存功能了,本文介紹SpringCache的基本使用方法,感興趣的朋友一起看看吧
    2024-01-01
  • Java中泛型通配符的使用方法示例

    Java中泛型通配符的使用方法示例

    這篇文章主要介紹了Java中泛型通配符的使用方法,結合實例形式分析了java中泛型通配符的功能、語法及在泛型類創(chuàng)建泛型對象中的使用方法,需要的朋友可以參考下
    2019-08-08
  • java 商戶PC端接入支付寶支付的實現(xiàn)方法

    java 商戶PC端接入支付寶支付的實現(xiàn)方法

    這篇文章主要介紹了java 商戶PC端接入支付寶支付的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • springboot使用外置tomcat啟動方式

    springboot使用外置tomcat啟動方式

    這篇文章主要介紹了springboot使用外置tomcat啟動方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論