ThinkPHP5.1中使用PhpWord生成word文檔

2021-01-08 小易網絡分享

本教程中使用的包版本以及環境:ThinkPHP 5.1.37LTSphpoffice/phpword 0.16.0php 7.0.12

需求

根據已經製作好的 Word 模板,進行內容替換,以達到生成新Word文檔的目的。

注意:模板格式務必為 .docx

安裝

這裡我們使用 composer 安裝。推薦使用阿里雲的 composer 全量鏡像

打開命令行工具,切換到你的 ThinkPHP 項目根目錄下。

執行:composer require phpoffice/phpword 安裝 phpword 包。

使用

在本地環境上準備一個已經製作好的 Word 模板

模板樣例

phpword 包中規定了替換的變量命名規則,務必以如上圖所示的格式。下面我們開始擼代碼。

代碼1
代碼1效果圖

如圖代碼1所示,我們首先實例化對象並傳入你的模板路徑,其次調用 setValue 方法去替換 Word 模板變量,再次調用 saveAs 方法並傳入保存的文件名保存生成新文檔。最後調用 tp 框架給我們提供的 download 方法下載文件。

值得注意的是,模板樣例中我們有一處地方寫了兩個替換變量 ${sample_num}${sample_num} 最終生成的文檔也將這兩個變量全都替換了,如果我們只替換它一次或者多次的話,怎麼辦呢?

如果你使用的是 phpstorm 工具的話,光標移至 setValue 方法上按住 ctrl+滑鼠左鍵就會跳轉至這個類方法地方了。

setValue方法

setValue 方法提供了三個參數,分別為 $search, $replace, $limit。

$search則是我們需要尋找的模板變量名。

$replace則是我們需要將這個變量名替換成什麼內容。

$limit則是當 phpword 尋找到多個符合條件的模板變量後,替換幾次。

我們只需要在 setValue 方法中添加第三個參數設置為 1,那麼最後就只會替換一次這個變量。

相信聰明的你已經看到了,setValue 方法中對傳進來的參數進行了判斷,判斷了是否為數組格式。沒錯,我們可以傳入一個數組來替換,不必調用多次這個方法。

至此,替換基本的文字是沒問題了,如果你想加入一張圖片,該怎麼辦呢?

TemplateProcessor 對象中除了 setValue 方法,還有一個 setImageValue 方法。

setImageValue方法

也是跟 setValue 方法一樣使用,只不過第二個參數有點小改變,根據注釋可以得知,第二個參數你可以直接傳入圖片的路徑,或者傳入一個數組,數組中可以設置圖片的路徑,尺寸。

setImageValue代碼

至此,本篇教程也結束了,謝謝您花費時間閱讀本教程。

相關焦點

  • word文檔怎麼自動生成目錄? word文檔自動生成目錄教程速Get
    word文檔怎麼自動生成目錄? word文檔自動生成目錄教程速Get時間:2018-06-26 19:52   來源:今日頭條   責任編輯:沫朵 川北在線核心提示:原標題:word文檔怎麼自動生成目錄? word文檔自動生成目錄教程速Get 很多小夥伴還不清楚word文檔怎麼自動生成目錄?
  • 在手機中怎樣使用word文檔?
    我下載了第一個Quickoffice三、使用方法3.1在手機上打開Quickoffice。你如果選2007版或2010版,上傳到2003版的office電腦中,就打不開。即高版本的word在低版本的office中無法打開。但低版本的word可以在高版本的office中能使用。3.6進入新word文檔中,就可以寫文章了。但在這裡寫文字,好像字體太小了,寫起來很廢眼力。你可以先在手機備忘錄中寫好保存後,再複製粘貼過來即可。
  • 這個項目讓 Java 生成 Word 文檔更容易
    今天給大家推薦的這個項目是「Word GO」,傳統的 Java 生成 word 文檔通常需要先手動創建模板文件,之後導入。如果不希望創建模板,還想少些點代碼,選 Word GO 是個好主意。>Eclipse 導入:右擊「項目」 → 選擇 Properties在彈出的對話框左側列表中選擇 Java Build Path2、maven中央倉庫導入<dependency
  • 怎樣批量生成word文檔?這兩種方法太實用了!
    批量生成不同名稱的word文檔說起來還真是一個難題呢!在短時間內,我們新建的文檔也是有限的。今天小編就交給大家兩種批量生成word文檔的方法,有想學習一下的小夥伴記得收藏一下哦!方法一:巧用TXT文本批量生成文檔我們先在電腦上新建一個TXT文本,然後在文本中輸入以下內容【@echo offfor /L %%x in (1,1,5) do @echo%%x>%%x.docx】,然後記得保存一下,關閉文本。在我們關閉文本之後,將文本的改為【.bat】格式。
  • 完美解決方案:Java生成複雜Word文檔
    【IT168 技術】客戶要求用程序生成標準的word文檔,要能列印,而且不能變形,以前用過很多解決方案,都在客戶嚴格要求下犧牲的無比慘烈。  POI讀word文檔還行,寫文檔實在不敢恭維,複雜的樣式很難控制不提,想像一下一個20多頁,嵌套很多表格和圖像的word文檔靠POI來寫代碼輸出,對程式設計師來說比去山西挖煤還慘,況且文檔格式還經常變化。  iText操作Excel還行。對於複雜的大量的word也是噩夢。  直接通過JSP輸出樣式基本不達標,而且要列印出來就更是慘不忍睹。
  • 使用PowerDesigner16.5 逆向資料庫 導出word文檔
    在上一篇《使用PowerDesigner16.5 逆向資料庫生產表結構或導出word文檔二》中,我們學會了使用PowerDesigner16.5怎麼連接資料庫,逆向生成表結構。有時候,我們需要把表結構以word形式導出來。這個時候我們同樣可以使用PowerDesigner來實現。
  • Python辦公自動化:使用python來自動生成word文檔
    這次介紹如何用python對word進行自動生成。安裝模塊pip install docx使用文檔python-docx允許您創建新文檔以及更改現有文檔。實際上,它只允許您更改現有文檔; 只是如果你從一個沒有任何內容的文檔開始,它最初可能會覺得你是從頭開始創建一個。這個特徵是一個強大的特徵。文檔的很多外觀取決於刪除所有內容時剩下的部分。
  • 巧用excel+word 快速批量生成各種文檔
    在我們工作中,有些工作可能單獨用excel或者單獨用word都可以完成,但是使用單獨的軟體可能操作起來會比較麻煩。為了高效的完成工作,我們完全不必局限於必須使用單一的軟體,完全可以使用組合軟體來快速的完成,總之就是,怎麼簡單高效完成,就怎麼做。
  • word中怎樣製作目錄? word文檔添加目錄圖文教程
    川北在線核心提示:原標題:word中怎樣製作目錄? word文檔添加目錄圖文教程 關於word中怎樣製作目錄的方法技巧大全 word中製作目錄方法一: 步驟一:右鍵單擊,新建一個word文檔,修改名稱為論文,並雙擊打開。
  • Excel 必學秘籍 根據Excel數據填寫word模板,從而批量生成word文檔
    Excel 必學秘籍 根據Excel數據填寫word模板,從而批量生成word文檔最近在論壇上看見了Excel大神發布了一段神奇的VBa代碼,我把它展示給了彭師,彭師看後感覺非常的實用,我們一起來看看它到底能幫我們做什麼吧。
  • Word技巧:手動生成的文檔目錄,也要給安排的明明白白
    Office辦公軟體在現在的學習和職場生活中,基本上已經成為了一項必須要掌握的技能之一,而office軟體當中word文檔的書寫編輯格式應用也佔有很大的比重。與此同時word技巧應用的熟練與否就直接決定了你的工作和學習效率。
  • word辦公文檔
    word辦公文檔簡介 word文檔手機版是一款word辦公互助文檔。
  • word文檔在線編輯推薦超級文檔
    傳統word 文檔幾乎是 office 一家選擇,原本word 軟體是為了列印文件而設計的,但是隨著時代發展,無紙化辦公越來越廣泛,而 word 的弊端越來越明顯,相信你經常會遇到以下場景文件發送後發現需要改
  • word文檔加密如何設置,如何加密word文檔?
    Word是常用的電腦文檔,很多重要的資料我們都是以word文檔的方式進行存儲,如果想對這些重要的文件資料進行加密該如何進行設置呢?一、word文檔在電腦中。1、現在不管是哪個版本的word文檔其實都是自帶加密功能的,下面小編來分享下設置方法。
  • 怎麼壓縮word文檔?word文檔太大該減減肥了
    怎麼壓縮word文檔大小?word文檔是我們工作中經常會用到的文件,當拿到一份需要e-mail給客戶的文件,又發現文件很大的時候,你會怎麼辦?為了提升發送的速度,可以將文檔壓縮變小,小編來為大家介紹一個壓縮的方法,看了你就會明白!
  • 在線Word文檔怎麼做—使用超級文檔一站式解決
    超級文檔 | 下一代在線多人協作Word | sdocapp.com在2020 年的今天,大部分企業團隊都已經轉而使用在線 word,而超級文檔是一個免費的以在線文檔為核心的協作辦公工具,在完整的排版和格式支持之外,還可以在文檔中嵌入任務看板、思維導圖、表格、表單、投票等等提高辦公效率的功能。
  • Word文檔文字顯示不全怎麼辦,按回車鍵是自動生成編號如何關閉?
    在word文檔中可以看到,有時候一些文字顯示不全,主要是因為行距的問題,下面來設置一下。1.當前可以看到文檔中有一段文字顯示不全。2.用滑鼠將文字全部框選住,滑鼠右鍵,點擊段落選項。3.然後在行距中可以看到當前顯示固定值。4.點擊下拉菜單,選擇單倍行距,點擊確定。5.這個時候文字就正常的顯示了。在word中一般輸入序號再按回車鍵之後會自動生成新的編號,這個是比較麻煩的事情,下面小編教大家如何關閉這個功能。
  • 怕Word文檔被人亂改?轉為PDF文檔放心傳輸
    ,再使用win32com庫將Word文檔轉為PDF文檔,這樣的轉換基本上100%保留了Word的樣式。總之生成Word文檔要比生成PDF文檔簡單。使用win32com這個庫來進行底層功能的處理。win32com庫封裝了Windows中關於Office組件編程的的一些東西。利用這個庫可以對Word格式進行轉換,比如doc轉為docx,doc轉為pdf等等,這些功能使用其它庫很難完成。
  • 1分鐘將100頁Word生成PPT,不需要使用插件或軟體!
    如果有一天老闆給你一個word文稿讓你把裡面的內容製作成PPT演示文檔,你會怎麼做?而且老闆給的時間有限!許多人的製作方法或許都是這樣的:第一步:新建一個空白的PPT文件;第二步:把word文檔中的內容一點一點的複製在PPT文件中; 第三步:對PPT文件排版。如果是你,你也會是這樣操作的嗎?實際上,完全沒有必要一點一點的去複製粘貼。
  • word怎麼添加附件? 手把手教你在word文檔中添加附件
    word怎麼添加附件? 手把手教你在word文檔中添加附件時間:2018-03-29 09:29   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:word怎麼添加附件? 手把手教你在word文檔中添加附件 word怎麼添加附件?文檔中需要插入附件,該怎麼插入附件呢?