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

jxls2.4.5如何動態(tài)導出excel表頭與數(shù)據(jù)

 更新時間:2024年08月15日 10:04:30   作者:專注寫bug  
這篇文章主要介紹了jxls2.4.5如何動態(tài)導出excel表頭與數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

在之前的文章中,介紹了jxls的基礎使用。但導出表頭屬于寫死的,并未采取動態(tài)渲染。

本次進行動態(tài)渲染操作,動態(tài)渲染表頭和填充數(shù)據(jù)。

依賴引入

springboot測試項目中,引入下列依賴以及版本。

<dependency>
    <groupId>org.jxls</groupId>
    <artifactId>jxls</artifactId>
    <version>2.4.5</version>
</dependency>
<dependency>
    <!-- 可以使用poi的實現(xiàn)也可以用jexcelapi的 -->
    <groupId>org.jxls</groupId>
    <artifactId>jxls-poi</artifactId>
    <version>1.0.15</version>
</dependency>
<dependency>
    <groupId>org.jxls</groupId>
    <artifactId>jxls-jexcel</artifactId>
    <version>1.0.7</version>
</dependency>
<dependency>
    <groupId>net.sf.jxls</groupId>
    <artifactId>jxls-core</artifactId>
    <version>1.0.6</version>
</dependency>

制作導出模板

導出模板依舊采取批注的方式,進行定義內(nèi)容范圍、表頭區(qū)域、數(shù)據(jù)區(qū)域

  • A1中的批注如下:
jx:area(lastCell=”A3”)

指定一條數(shù)據(jù)填充時的范圍。

  • A2中的批注如下:
jx:grid(lastCell=“A3” headers=“hDatas” data=“bDatas” areas=[A2:A2, A3:A3] formatCells=“BigDecimal:C1,Date:D1”)
  • headers指定哪個list集合屬于動態(tài)表頭數(shù)據(jù)。
  • data 指定使用哪個數(shù)據(jù)集合作為數(shù)據(jù)渲染源。
  • areas 指定表頭和數(shù)據(jù)的范圍。A2:A2 表示 表頭數(shù)據(jù)的區(qū)域。A3:A3 表示 第一個數(shù)據(jù)單元格所在的區(qū)域。
  • formatCells 官方文檔說的是指定數(shù)據(jù)格式,測試時不屬于必填項。

測試類

package cn.xj.controller;

import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.jxls.common.Context;
import org.jxls.util.JxlsHelper;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import java.io.*;
import java.util.*;

@Slf4j
public class Test3 {

    public static void main(String[] args) throws Exception {

        //Map<String, Object> map = new HashMap();
        Context context = new Context();
        // 動態(tài)頭
        context.putVar("hDatas", Arrays.asList("編號","名稱","年齡","郵箱"));
        // 數(shù)據(jù)集合
        List<List<Object>> dataList = Lists.newArrayList();
        for (int i = 0; i < 10; i++) {
            List<Object> list = new ArrayList<>();
            Map<String, Object> params = new HashMap<>();
            list.add("1_"+i);
            list.add("xj_"+i);
            list.add(22);
            list.add("專注寫bug測試中文");
            dataList.add(list);
        }
        // ${item.num}
        context.putVar("bDatas",dataList);

        Resource resource = new ClassPathResource("/report/test_user2.xlsx");
        InputStream is = resource.getInputStream();

        String outFile = System.getProperty("user.dir")+ File.separator+"springboot-poi"+File.separator+"pdf"+File.separator+System.currentTimeMillis()+ ".xlsx";
        OutputStream outputStream = new FileOutputStream(outFile);


        JxlsHelper.getInstance().processTemplate(is, outputStream, context);

    }

}

導出效果

注意事項

1、表頭的數(shù)據(jù)格式為List<String>

2、數(shù)據(jù)部分的格式為List<List<Object>>?;蛘?code>List<xxxxPo>,但第2種數(shù)據(jù)格式暫未進行驗證。

3、使用動態(tài)表頭方式,必須使用org.jxls.common.Context來承接數(shù)據(jù)信息。

Context context = new Context();
// 動態(tài)頭
context.putVar(“hDatas”, Arrays.asList(“編號”,“名稱”,“年齡”,“郵箱”));
// 數(shù)據(jù)集合
List<List> dataList = Lists.newArrayList();
context.putVar(“bDatas”,dataList);

4、表頭與數(shù)據(jù)單元格部分,必須強制使用${header}${cell}。自定義命名會導致數(shù)據(jù)不會填充!

總結

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

相關文章

  • Java如何將int型數(shù)組轉為String型數(shù)組

    Java如何將int型數(shù)組轉為String型數(shù)組

    這篇文章主要介紹了Java如何將int型數(shù)組轉為String型數(shù)組,本文給大家分享具體實現(xiàn)思路結合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Mybatis 入門之MyBatis環(huán)境搭建(第一篇)

    Mybatis 入門之MyBatis環(huán)境搭建(第一篇)

    Mybatis的前身叫iBatis,本是apache的一個開源項目, 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis。這篇文章主要介紹了Mybatis入門第一篇之MyBaits環(huán)境搭建,需要的朋友參考下
    2016-12-12
  • SpringBoot集成validation校驗參數(shù)遇到的坑

    SpringBoot集成validation校驗參數(shù)遇到的坑

    這篇文章主要介紹了SpringBoot集成validation校驗參數(shù)遇到的坑,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • java如何實現(xiàn)遞歸刪除樹形數(shù)據(jù)的任一個節(jié)點

    java如何實現(xiàn)遞歸刪除樹形數(shù)據(jù)的任一個節(jié)點

    文章講述了在Java中實現(xiàn)遞歸刪除樹形數(shù)據(jù)的任一個節(jié)點時需要注意的三個點,包括刪除的節(jié)點包含子節(jié)點、刪除子節(jié)點和其他子節(jié)點刪除的節(jié)點不包含子節(jié)點、以及該父節(jié)點變成葉子節(jié)點,此外,文章還提到這兩件事包含在同一件事務中
    2024-12-12
  • PowerJob的UserService工作流程源碼解讀

    PowerJob的UserService工作流程源碼解讀

    這篇文章主要介紹了PowerJob的UserService工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • JAVA解決在@autowired,@Resource注入為null的情況

    JAVA解決在@autowired,@Resource注入為null的情況

    這篇文章主要介紹了JAVA解決在@autowired,@Resource注入為null的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • JAVA中SpringBoot啟動流程分析

    JAVA中SpringBoot啟動流程分析

    這篇文章主要介紹了JAVA中SpringBoot啟動流程分析的相關資料,需要的朋友可以參考下
    2023-01-01
  • Java實現(xiàn)瀏覽器端大文件分片上傳

    Java實現(xiàn)瀏覽器端大文件分片上傳

    本文主要介紹了Java實現(xiàn)瀏覽器端大文件分片上傳,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • jdbc連接sqlserver數(shù)據(jù)庫示例

    jdbc連接sqlserver數(shù)據(jù)庫示例

    這篇文章主要介紹了jdbc連接sqlserver數(shù)據(jù)庫示例,需要的朋友可以參考下
    2014-04-04
  • Struts2.5版本struts.xml與web.xml配置的更改方法

    Struts2.5版本struts.xml與web.xml配置的更改方法

    這篇文章主要給大家介紹了關于Struts2.5版本中struts.xm與web.xml配置的更改方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11

最新評論

屏山县| 阿坝县| 新安县| 宁明县| 牟定县| 留坝县| 定安县| 彭水| 吉安县| 洛川县| 无锡市| 芦山县| 桑日县| 滦南县| 永吉县| 青龙| 绥芬河市| 阿克苏市| 宁化县| 阳江市| 宁明县| 寻乌县| 衡阳县| 许昌县| 西丰县| 花莲市| 武隆县| 安吉县| 嘉义市| 贵港市| 上虞市| 遵义县| 盐城市| 翁源县| 泊头市| 建瓯市| 都安| 乌兰县| 平谷区| 高碑店市| 葫芦岛市|