国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

freemarker學(xué)習(xí)+集成springboot+導(dǎo)出word

這篇具有很好參考價(jià)值的文章主要介紹了freemarker學(xué)習(xí)+集成springboot+導(dǎo)出word。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一 FreeMarker簡(jiǎn)介

二 集成springboot,實(shí)現(xiàn)案例導(dǎo)出

三 常見面試題總結(jié)


一 FreeMarker簡(jiǎn)介

FreeMarker?是一款 模板引擎: 即一種基于模板和要改變的數(shù)據(jù), 并用來生成輸出文本(HTML網(wǎng)頁(yè),電子郵件,配置文件,源代碼等)的通用工具。 是一個(gè)Java類庫(kù)。

二 集成springboot,實(shí)現(xiàn)案例導(dǎo)出

在本地磁盤隨便準(zhǔn)備一個(gè)文件,內(nèi)容體如下:

freemarker學(xué)習(xí)+集成springboot+導(dǎo)出word,各種技術(shù)框架,學(xué)習(xí),spring boot,word

內(nèi)容案例如下:

freemarker學(xué)習(xí)+集成springboot+導(dǎo)出word,各種技術(shù)框架,學(xué)習(xí),spring boot,word

?代碼實(shí)現(xiàn):

?2.1 導(dǎo)入jar

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2.2 新建FileController.java類,代碼實(shí)現(xiàn)如下:

package com.yty.system.controller;


import com.alibaba.fastjson.JSONObject;
import freemarker.template.Configuration;
import freemarker.template.Template;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.*;

@RestController
@RequestMapping("/file")
@Api(tags = "文件管理api")
public class FileController {


    @GetMapping("exportPDF")
    @ApiOperation(value = "文件導(dǎo)出到PDF",notes = "文件導(dǎo)出到PDF")
    public void exportPDF(HttpServletResponse response) throws Exception{
        try {
            exportWord(response, "2012001.ftl", "/templates/ftl/");
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void exportWord(HttpServletResponse response, String templateName, String templatePath) throws Exception{
        Configuration configuration = new Configuration(Configuration.getVersion()); // 創(chuàng)建一個(gè)Configuration對(duì)象

        configuration.setClassForTemplateLoading(this.getClass(), templatePath);

        configuration.setDefaultEncoding("utf-8");

        //必須加此參數(shù),否則任意key的值為空freemark都會(huì)報(bào)錯(cuò)
        configuration.setClassicCompatible(true);
        // 選擇模板
        Template template = configuration.getTemplate(templateName); //加載模板

        // 導(dǎo)出文件名
        String fileName = System.currentTimeMillis() + ".doc";
        // 導(dǎo)出文件路徑
        String path = "D:\\system\\ee\\模板\\" + fileName;
        // 創(chuàng)建文件
        File file = new File(path);

        Writer out = new FileWriter(file);
        // 填充數(shù)據(jù)
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("surveyPersonName", "孫悟空");
        jsonObject.put("createTime", "2012-09");

        //調(diào)用模板對(duì)象的process方法輸出文件
        template.process(jsonObject, out);

        // 下載文件
        downloadFile(response, file, out);
    }

    public void downloadFile(HttpServletResponse response, File file, Writer out) throws Exception{
        // 下載文件
        byte[] buffer = new byte[1024];
        response.addHeader("Content-Disposition","attachment;filename=" + new String(file.getName().getBytes(), "ISO-8859-1"));
        FileInputStream fis = new FileInputStream(file);
        BufferedInputStream bis = new BufferedInputStream(fis);
        OutputStream os = response.getOutputStream();
        int i = bis.read(buffer);
        while (i != -1) {
            os.write(buffer, 0, i);
            i = bis.read(buffer);
        }
        // 關(guān)閉流
        os.close();
        bis.close();
        fis.close();
        out.close();
        file.delete();
    }
}

直接復(fù)制代碼,運(yùn)行結(jié)果:

freemarker學(xué)習(xí)+集成springboot+導(dǎo)出word,各種技術(shù)框架,學(xué)習(xí),spring boot,word

?集成完畢,數(shù)據(jù)已填充,導(dǎo)出完畢

三 常見面試題總結(jié)

待補(bǔ)充...............文章來源地址http://www.zghlxwxcb.cn/news/detail-689699.html

到了這里,關(guān)于freemarker學(xué)習(xí)+集成springboot+導(dǎo)出word的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot整合FreeMarker生成word表格文件(使用FTL模板)

    SpringBoot整合FreeMarker生成word表格文件(使用FTL模板)

    一,什么是FreeMarker,F(xiàn)TL模板? FreeMarker 是一款 模板引擎: 即一種基于模板和要改變的數(shù)據(jù), 并用來生成輸出文本(HTML網(wǎng)頁(yè),電子郵件,配置文件,源代碼等)的通用工具。 它不是面向最終用戶的,而是一個(gè)Java類庫(kù),是一款程序員可以嵌入他們所開發(fā)產(chǎn)品的組件。 模板編寫為

    2024年03月24日
    瀏覽(27)
  • Springboot集成Freemarker|超級(jí)詳細(xì),建議收藏

    Springboot集成Freemarker|超級(jí)詳細(xì),建議收藏

    上一期,我是帶著大家入門了 SpringBoot集成Kafka ,今天我再來一期Freemarker的零基礎(chǔ)教學(xué)吧。不知道大家對(duì)kafka有多少了解,反正我就是從搭建開始,然后再加一個(gè)簡(jiǎn)單演示,這就算是帶著大家了個(gè)門哈,剩下的我再后邊慢慢出教程給大家說。 演示環(huán)境:idea2021 + springboot 2.3.1

    2024年02月11日
    瀏覽(23)
  • SpringBoot導(dǎo)出Word文檔的三種方式

    SpringBoot導(dǎo)出Word文檔的三種方式

    1、直接在Java代碼里創(chuàng)建Word文檔,設(shè)置格式樣式等,然后導(dǎo)出。(略) 需要的見:https://blog.csdn.net/qq_42682745/article/details/120867432 2、富文本轉(zhuǎn)換后的HTML下載為Word文檔。相當(dāng)于把HTML轉(zhuǎn)為Word導(dǎo)出 3、使用模板技術(shù)導(dǎo)出。固定格式、可以寫入不同數(shù)據(jù) 其他: springboot版本:2.7.11 導(dǎo)

    2024年02月02日
    瀏覽(21)
  • freemarker 使用word模板賦值

    freemarker 使用word模板賦值

    這里貼上自己測(cè)試的ftl文件 生成的效果 參考: https://blog.csdn.net/weixin_46174854/article/details/116855252 https://blog.csdn.net/weixin_45853881/article/details/129298494 https://blog.csdn.net/qq_42851623/article/details/122879852 https://blog.csdn.net/weixin_45103378/article/details/118395284 https://www.cnblogs.com/ayueC/p/15118381.html

    2024年02月11日
    瀏覽(20)
  • 根據(jù)模板動(dòng)態(tài)生成word(一)使用freemarker生成word

    根據(jù)模板動(dòng)態(tài)生成word(一)使用freemarker生成word

    @ 目錄 一、準(zhǔn)備模板 1、創(chuàng)建模板文件 2、處理模板 2.1 處理普通文本 2.2 處理表格 2.3 處理圖片 二、項(xiàng)目代碼 1、引入依賴 2、生成代碼 三、驗(yàn)證生成word 首先先建立一個(gè)word文件,輸入模板內(nèi)容freemaker的內(nèi)容,下面是本次演示的word文件。 然后將word文件另存為 .xml 文件,然后再

    2024年02月13日
    瀏覽(29)
  • freemarker模板生成的word文檔優(yōu)化

    freemarker模板生成的word文檔優(yōu)化

    使用壓縮工具打開docx模板,取出document.xml,如下圖: 將用壓縮工具打開后的docx文檔里面的document.xml復(fù)制出來,并將document.xml后綴改為.ftl,然后進(jìn)行參數(shù)預(yù)設(shè)。 將內(nèi)容格式化后修改需要替換的內(nèi)容為freemarker標(biāo)簽,對(duì)document.ftl進(jìn)行參數(shù)預(yù)設(shè),如下圖: 文件準(zhǔn)備好后存放到某個(gè)

    2024年02月02日
    瀏覽(27)
  • freemarker模板操作excel或word

    freemarker模板操作excel或word

    二維碼生成

    2024年01月18日
    瀏覽(27)
  • 基于Java+freemarker實(shí)現(xiàn)動(dòng)態(tài)賦值以及生成Word文檔

    基于Java+freemarker實(shí)現(xiàn)動(dòng)態(tài)賦值以及生成Word文檔

    有一個(gè)需求就是給定一個(gè)正確格式的 Word 文檔模板,要求通過動(dòng)態(tài)賦值方式,寫入數(shù)據(jù)并新生成 該模板格式的 Word 文檔。這很明顯使用 Java+freemarker 方式來實(shí)現(xiàn)頗為簡(jiǎn)單。 (1)準(zhǔn)備好一個(gè)正確格式的 Word 文檔(測(cè)試文檔 - 原版.docx) (2)將其另存為xml文件(測(cè)試文檔?- 原版

    2024年02月09日
    瀏覽(25)
  • SpringBoot動(dòng)態(tài)導(dǎo)出word文檔(完美實(shí)整教程 復(fù)制即可使用,不能實(shí)現(xiàn)你找我)

    SpringBoot動(dòng)態(tài)導(dǎo)出word文檔(完美實(shí)整教程 復(fù)制即可使用,不能實(shí)現(xiàn)你找我)

    最近有一個(gè)需求是需要?jiǎng)討B(tài)導(dǎo)出合同、訂單等信息,導(dǎo)出一個(gè)word文檔供客戶進(jìn)行下載查看。 需要導(dǎo)出的word文件,主要可以分為兩種類型。 導(dǎo)出固定內(nèi)容和圖片的word文檔 導(dǎo)出表格內(nèi)容不固定的word文檔 經(jīng)過對(duì)比工具,我實(shí)踐過兩種實(shí)現(xiàn)方式。第一種是FreeMarker模板來進(jìn)行填充

    2024年02月03日
    瀏覽(17)
  • 使用freemarker,導(dǎo)出制作好的ftl模板,并寫入數(shù)據(jù)

    1.1 項(xiàng)目背景 最近在開發(fā)一個(gè)項(xiàng)目,需要導(dǎo)出一些數(shù)據(jù),然后寫入到word文檔中,然后再導(dǎo)出到本地,這個(gè)需求是比較常見的,但是我在網(wǎng)上找了很多資料,都沒有找到一個(gè)比較好的解決方案,所以就自己寫了一個(gè),這里分享給大家,希望能幫助到大家。 項(xiàng)目中使用的技術(shù)棧:

    2024年02月05日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包