亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java實現(xiàn)導(dǎo)出Word文檔的示例代碼

 更新時間:2023年02月09日 14:10:33   作者:nohup  
poi-tl是一個基于Apache POI的Word模板引擎,也是一個免費開源的Java類庫,你可以非常方便的加入到你的項目中。本文就利用它實現(xiàn)導(dǎo)出Word文檔功能,需要的可以參考一下

最近公司做項目,需要導(dǎo)出word或者PDF文檔,PDF實現(xiàn)文檔已經(jīng)輕車熟路了,想研究搞一下word文檔。經(jīng)過調(diào)研發(fā)現(xiàn)了一個好用的開源項目Poi-tl

http://deepoove.com/poi-tl

poi-tl是一個基于Apache POI的Word模板引擎,也是一個免費開源的Java類庫,你可以非常方便的加入到你的項目中,并且擁有著讓人喜悅的特性

功能很強大,可以基于模板生成,寫了一個demo

public class Demo {
    public static void main(String[] args) throws IOException {
        InputStream inputStream = Demo.class.getResourceAsStream("/template.docx");
        String upgrade = "{\"upgradeStrategy\":0,\"fileDownloadModel\":0,\"downloadUrl\":\"http://downloadurl\",\"userName\":\"admin\",\"password\":\"admin\",\"bucket\":\" test\",\"path\":\"test/test.zip\",\"fileName\":\"test.zip\",\"fileSize\":10000,\"signatureMethod\":0,\"signatureValue\":\"123456asadsasdsa\",\"fileVersion\":1.0,\"upgradeStartTime\":\"2022-10-12 18:00:00\",\"extend\":{\"key1\":\"value2\",\"key2\":\"value2\"},\"timestamp\":\"2022-07-11 16:06:54\"}" ;
        JSONObject jsonObject = JSONObject.parseObject(upgrade);

        HighlightRenderData code = new HighlightRenderData();
        code.setCode(JSONObject.toJSONString(jsonObject, true));
        code.setLanguage("javascript");
        code.setStyle(HighlightStyle.builder().withShowLine(false).withTheme("vs").build());


        List<Goods> goods = new ArrayList<>();
        Goods good = new Goods();
        good.setCount(4);
        good.setName("墻紙");
        good.setDesc("書房臥室");
        good.setDiscount(1500);
        good.setPrice(400);
        good.setTax(new Random().nextInt(10) + 20);
        good.setTotalPrice(1600);
        good.setPicture(Pictures.ofUrl("http://deepoove.com/images/icecream.png")
                .size(100, 100).create());

        goods.add(good);
        goods.add(good);
        goods.add(good);

        List<Params> paramsList = new ArrayList<>();
        Params params1 = new Params();
        params1.setProductKey("productKey");
        params1.setParamType("String");
        params1.setDescText("要發(fā)送消息產(chǎn)品的ProductKey");
        paramsList.add(params1);

        Params params2 = new Params();
        params2.setProductKey("upgradeStrategy");
        params2.setParamType("String");
        params2.setDescText("升級策略(0:立即升級 1:定時升級 2:取消升級 3:僅下載 4:僅升級)");
        paramsList.add(params2);

        Params params3 = new Params();
        params3.setProductKey("downloadUrl");
        params3.setParamType("String");
        params3.setDescText(null);
        paramsList.add(params3);

        LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
        Configure config = Configure.builder().bind("code", new HighlightRenderPolicy()).bind("goods", policy).bind("paramsList",policy)                .useSpringEL()
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, config).render(
                new HashMap<String, Object>() {{
                    put("title", "Hi, poi-tl Word模板引擎");
                    put("code", code);
                    put("goods", goods);
                    put("paramsList",paramsList);

                }});

        template.writeAndClose(new FileOutputStream("output"+UUID.randomUUID().toString().replace("-","")+".docx"));
    }
}

word 模板:

文檔非常詳細(xì)

到此這篇關(guān)于Java實現(xiàn)導(dǎo)出Word文檔的示例代碼的文章就介紹到這了,更多相關(guān)Java導(dǎo)出Word文檔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 學(xué)習(xí)SpringMVC——國際化+上傳+下載詳解

    學(xué)習(xí)SpringMVC——國際化+上傳+下載詳解

    本篇文章主要介紹了學(xué)習(xí)SpringMVC——國際化+上傳+下載,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。
    2016-12-12
  • java同步鎖的正確使用方法(必看篇)

    java同步鎖的正確使用方法(必看篇)

    下面小編就為大家?guī)硪黄猨ava同步鎖的正確使用方法(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 一文帶你學(xué)習(xí)Java多維數(shù)組的使用技巧

    一文帶你學(xué)習(xí)Java多維數(shù)組的使用技巧

    Java作為一門廣泛應(yīng)用于各行各業(yè)的開發(fā)語言,具有豐富的數(shù)據(jù)類型支持,其中多維數(shù)組是其重要的一種,多維數(shù)組可以更加方便地組織數(shù)據(jù),提高Java應(yīng)用程序的效率,本文將為大家介紹Java中多維數(shù)組的基本概念和常用操作,助力讀者更好地掌握多維數(shù)組的使用技巧
    2023-11-11
  • 詳解分別用Kotlin和java寫RecyclerView的示例

    詳解分別用Kotlin和java寫RecyclerView的示例

    本篇文章主要介紹了詳解分別用Kotlin和java寫RecyclerView的示例,詳解分別用Kotlin和java寫RecyclerView的示例
    2017-12-12
  • java查找圖中兩點之間所有路徑

    java查找圖中兩點之間所有路徑

    這篇文章主要為大家詳細(xì)介紹了java查找圖中兩點之間所有路徑,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Spring Boot實戰(zhàn)之netty-socketio實現(xiàn)簡單聊天室(給指定用戶推送消息)

    Spring Boot實戰(zhàn)之netty-socketio實現(xiàn)簡單聊天室(給指定用戶推送消息)

    本篇文章主要介紹了Spring Boot實戰(zhàn)之netty-socketio實現(xiàn)簡單聊天室(給指定用戶推送消息),具有一定的參考價值,有興趣的可以了解一下。
    2017-03-03
  • Spring整合MyBatis圖示過程解析

    Spring整合MyBatis圖示過程解析

    這篇文章主要介紹了Spring整合MyBatis圖示過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • JDK的一個Bug監(jiān)聽文件變更的初步實現(xiàn)思路

    JDK的一個Bug監(jiān)聽文件變更的初步實現(xiàn)思路

    這篇文章主要介紹了JDK的一個Bug監(jiān)聽文件變更要小心了,本篇文章就帶大家簡單實現(xiàn)一個對應(yīng)的功能,并分析一下對應(yīng)的Bug和優(yōu)缺點,需要的朋友可以參考下
    2022-05-05
  • Java并發(fā)之synchronized實現(xiàn)原理深入理解

    Java并發(fā)之synchronized實現(xiàn)原理深入理解

    這篇文章主要介紹了Java中synchronized實現(xiàn)原理詳解,涉及synchronized實現(xiàn)同步的基礎(chǔ),Java對象頭,Monitor,Mark Word,鎖優(yōu)化,自旋鎖等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Java并發(fā)編程之threadLocal

    Java并發(fā)編程之threadLocal

    ThreadLocal是JDK包提供的,它提供了線程本地變量,也就是說如果創(chuàng)建了一個ThreadLocal變量,需要的朋友可以參考一下喲
    2021-09-09

最新評論