Freemarker實現下載word可能遇到的問題

73萬字的Java面試題庫【全網最詳細-找工作/實習必備神器】

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzE5MTY1NzczOA==&action=getalbum&album_id=4057608455186808839
Java面試題庫ps:網上面試題多而雜,自己整理了一套面試題,我靠這套面試題 2年經驗拿15k~

Freemarker可能遇到的問題
問題1:Freemarker的word導出后,有的文字填充之間會出現空白格,如果是兩個占位符并用,更容易出現這種情況

原因:這個是因為數據庫里面存儲的文本,特別是中文,存儲的內容有換行或者空格導致的,跟模版沒關系,數據庫中看可能看不出來,可能數據庫看著是沒有問題,也沒有空白格,但是讀取到java代碼里面的時候就會出現空白格或者換行符

解決辦法:數據庫中的數據存儲的時候就要保證沒有空白格或者換行符

問題2:列表沒有數據的時候導出報錯,沒有數據需要特殊處理

如果沒有數據也要導出一個word,這個word不是空,只是說要填充的值沒有而已,如果導出的word里面涉及到列表的遍歷,那么就需要特殊處理一下才行,不然會報錯!

<#if bgGsgyCompanies?has_content><#list bgGsgyCompanies as bgGsgyCompanie><w:p><w:pPr><w:numPr><w:ilvl w:val="0"/><w:numId w:val="0"/></w:numPr><w:ind w:firstLine="640" w:firstLineChars="200"/><w:rPr><w:rFonts w:hint="eastAsia" w:ascii="方正仿宋_GBK" w:hAnsi="方正仿宋_GBK" w:eastAsia="方正仿宋_GBK"w:cs="方正仿宋_GBK"/><w:color w:val="auto"/><w:kern w:val="2"/><w:sz w:val="32"/><w:szCs w:val="32"/><w:highlight w:val="none"/><w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia" w:ascii="方正仿宋_GBK" w:hAnsi="方正仿宋_GBK" w:eastAsia="方正仿宋_GBK"w:cs="方正仿宋_GBK"/><w:color w:val="auto"/><w:kern w:val="2"/><w:sz w:val="32"/><w:szCs w:val="32"/><w:highlight w:val="none"/><w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/></w:rPr><w:t>${bgGsgyCompanie.township?if_exists}:重點企業</w:t></w:r></w:p></#list>
<#else><w:p><w:pPr><w:numPr><w:ilvl w:val="0"/><w:numId w:val="0"/></w:numPr><w:ind w:firstLine="640" w:firstLineChars="200"/><w:rPr><w:rFonts w:hint="eastAsia" w:ascii="方正仿宋_GBK" w:hAnsi="方正仿宋_GBK" w:eastAsia="方正仿宋_GBK"w:cs="方正仿宋_GBK"/><w:color w:val="auto"/><w:kern w:val="2"/><w:sz w:val="32"/><w:szCs w:val="32"/><w:highlight w:val="none"/><w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia" w:ascii="方正仿宋_GBK" w:hAnsi="方正仿宋_GBK" w:eastAsia="方正仿宋_GBK"w:cs="方正仿宋_GBK"/><w:color w:val="auto"/><w:kern w:val="2"/><w:sz w:val="32"/><w:szCs w:val="32"/><w:highlight w:val="none"/><w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/></w:rPr><w:t>:重點企業</w:t></w:r>
</#if>

騷戴理解:例如上面就是對列表為空的時候進行了特殊處理,從而實現導出為空的時候不報錯!通過<#if><#else></#if>來實現,然后通過 bgGsgyCompanies?has_content來判斷bgGsgyCompanies集合是否有內容,如果沒有內容,那么就顯示else部分的內容,需要注意的是在else里面最好直接把占位符都去掉,例如${bgGsgyCompanie.township?if_exists}

問題3:用word打開導出的word報告會彈出提示框

問題描述:導出的word報告,用wps打開不會有這個問題,但是用office打開會有這個問題,出現不兼容的問題

解決辦法:

1、通過分析,發現使用docx后綴的word文件設計模版不會有這個問題,但是使用doc后綴的word文件設計模版會出現這個問題,所以這里可以使用docx的文件來設計模版,從而避免這個問題

2、也可以通過office創建一個word文件,然后這個基礎上面設計模版,因為wps兼容性更好游戲,wps不會有這個問題,所以可以以office的文件作為模版

問題4:每一段話的前面有很長的空白格

如上所示,如果是用wps打開生成的word,就會有這個空白格,用office打開不會有,這里我是用office生成的word文件作為的模版文件的,代碼如下所示

正確的如下所示,也就是說標簽里的內容不能有空白格,不然會被識別為空白格

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90094.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90094.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90094.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

涉及海量數據的查詢SQL建議使用“數據庫函數”封裝并調用

一、問題描述生產環境中&#xff0c;核心業務表數據量隨業務增長迅速膨脹&#xff0c;原統計查詢SQL因執行計劃劣化、索引失效而突然變慢。若按傳統流程修復&#xff0c;需要優化SQL、測試、重新打包、發版&#xff0c;并且SQL優化往往需要多輪迭代、持續打磨&#xff1b;若每次…

OBLoader和OBDumper導數工具介紹

OBLoader和OBDumper導數工具介紹使用指南產品功能使用須知使用示例旁路導入性能調優導入性能優化導出性能優化數據處理控制文件預處理函數條件表達式注意事項使用指南 產品功能 &#x1f418; OBLOADER是什么&#xff1a; Java語言開發的客戶端工具&#xff0c;僅適用于Ocea…

Jenkins+Docker+Git實現自動化CI/CD

你是否還在手動構建、測試、部署過程中頻繁等待&#xff1f;或者擔心“我本地沒問題&#xff0c;部署卻報錯”&#xff1f;在敏捷開發和 DevOps 時代&#xff0c;**持續集成與持續交付&#xff08;CI/CD&#xff09;**變得至關重要。將 Jenkins、Docker、Git 三者結合&#xff…

Apache Ignite 的 SQL 功能和分布式查詢機制

這段內容講的是 Apache Ignite 的 SQL 功能和分布式查詢機制。我們可以從幾個關鍵點來理解&#xff1a;一、Ignite 是一個分布式 SQL 數據庫 ? 特點&#xff1a; 符合 ANSI-99 SQL 標準水平擴展&#xff08;可擴展到多個節點&#xff09;容錯&#xff08;fault-tolerant&#…

C++中的deque容器

deque容器基本概念功能&#xff1a;雙端數組&#xff0c;可以對頭端進行插入和刪除操作deque與vector區別&#xff1a;vector對于頭部的插入刪除掉率低&#xff0c;數據量越大&#xff0c;效率越低deque相對而言&#xff0c;對頭部的插入刪除速度會比vector快vetcor訪問元素時的…

閑庭信步使用圖像驗證平臺加速FPGA的開發:第三十課——車牌識別的FPGA實現(2)實現車牌定位

&#xff08;本系列只需要modelsim即可完成數字圖像的處理&#xff0c;每個工程都搭建了全自動化的仿真環境&#xff0c;只需要雙擊top_tb.bat文件就可以完成整個的仿真&#xff0c;大大降低了初學者的門檻&#xff01;&#xff01;&#xff01;&#xff01;如需要該系列的工程…

前端性能優化:從“龜速“到“閃電“的終極加速指南

一、性能指標:你的網站"體檢報告" ?? 1. 核心Web指標(Google排名因素) 指標 全稱 優秀標準 優化方向 LCP 最大內容繪制 ≤2.5s 關鍵資源預加載 FID 首次輸入延遲 ≤100ms 減少長任務 CLS 累計布局偏移 ≤0.1 預留圖片尺寸 測量方法: // 使用web-vitals庫測量…

Linux 重定向和緩沖區

序言&#xff1a; 前面在Linux 基礎文件IO操作-CSDN博客這篇博客里說了很多函數無論是在語言層還是在系統調用的方面。在調用系統調用open的時候會返回一個整型&#xff0c;在write傳參的時候第一個參數是一個叫fd的東西&#xff0c;這個是什么東西&#xff1f;這篇博客會詳細…

web登錄頁面

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>簡易登錄頁面</title><style>* {mar…

Java中關于線程池的解析

引語在學習了線程與多線程的相關知識后&#xff0c;我們已經能夠實現在程序中使多個任務并行&#xff0c;但是我們在操作時候&#xff0c;往往每執行一個的任務就需要創建一個新的線程。這種方式在需要執行任務很多時不利于我們對線程的管理&#xff0c;且創建過多線程也非常占…

J2EE模式---前端控制器模式

前端控制器模式基礎概念前端控制器模式&#xff08;Front Controller Pattern&#xff09;是一種結構型設計模式&#xff0c;其核心思想是將應用程序的所有請求集中到一個中央處理器&#xff08;前端控制器&#xff09;進行處理&#xff0c;由它負責接收請求、協調處理流程并返…

模塊加載、ES、TS、Babel 淺析

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 &#x1f35a; 藍橋云課簽約作者、…

day056-Dockerfile案例與Docker Compose

文章目錄0. 老男孩思想-老男孩名言警句1. Dockerfile指令&#xff1a;ENV與ARG的區別&#xff1f;2. 創建WordPress鏡像2.1 CA證書2.1.1 客戶端訪問HTTPS站點&#xff08;阿里云鏡像源&#xff09;過程2.1.2 查看Windows的CA證書2.1.3 ubuntu查看CA證書是否安裝2.2 準備apt下載…

gcc 源碼分析:從IR-RTL 到匯編輸出

在完成了IR-RTL的優化與寄存器分配后就來到匯編代碼的輸出&#xff1a;實現如下&#xff1a;class pass_final : public rtl_opt_pass { public:pass_final (gcc::context *ctxt): rtl_opt_pass (pass_data_final, ctxt){}/* opt_pass methods: */unsigned int execute (functi…

STC89C52系列單片機內部結構詳解

STC89C52 是基于 MCS-51 內核的增強型單片機&#xff0c;其內部結構集成了多種功能模塊&#xff0c;具備強大的數據處理和控制能力&#xff0c;是嵌入式系統中常用的一種微控制器。本文將結合內部結構框圖&#xff0c;詳細介紹 STC89C52 的各個核心組成部分及其功能作用。一、中…

Linux防火墻管理和基礎服務(FTP/SFTP)

防火墻管理# 開放端口firewalld-cmd --add-port880/tcp --permanent# 移除端口或阻止端口firewalld-cmd --remove-port880/tcp --permanent# 重啟服務systemctl restart firewalld# 查看防火墻開放哪些端口&#xff08;查看當前區域的規則&#xff09;firewall-cmd --lis…

Selenium+Java 自動化測試入門到實踐:從環境搭建到元素操作

在自動化測試領域&#xff0c;Selenium 憑借其強大的跨瀏覽器兼容性和靈活的 API&#xff0c;成為 Web 應用測試的首選工具。而 Java 作為一門穩定且廣泛應用的編程語言&#xff0c;與 Selenium 結合能構建出高效、可維護的自動化測試框架。本文將從環境搭建開始&#xff0c;逐…

Hugging Face 模型的緩存和直接下載有什么區別?

Hugging Face 模型的緩存和直接下載&#xff08;下載到本地文件夾&#xff09;是兩種不同的模型管理方式&#xff0c;它們在使用場景、存儲結構和效率上各有優劣。 以下是它們之間的主要區別&#xff1a; Hugging Face 緩存 (Cache) 當您通過 transformers 庫中的 from_pretrai…

JavaScript AJAX 實現,演示如何將 Token 添加到 Authorization

以下是一個完整的原生 JavaScript AJAX 實現&#xff0c;演示如何將 Token 添加到 Authorization 頭部的示例&#xff1a;基礎實現html復制代碼<!DOCTYPE html> <html> <head><title>AJAX Token 示例</title><script>// 獲取當前用戶的 To…

開發語言的優劣勢對比及主要應用領域分析

開發語言是程序員用來編寫軟件指令的工具。每種語言都有自己的設計哲學、語法&#xff08;規則&#xff09;和應用場景&#xff0c;但沒有“放之四海而皆準”的最佳語言。以下是主流和重要開發語言的介紹&#xff0c;按主要應用領域分類&#xff1a; 一、全能型語言 (可在多個領…