PHP製作word簡曆

來源:互聯網
上載者:User
PHP操作word有一個非常好用的輪子,就是phpword,該輪子可以在github上尋找到(PHPOffice/PHPWord)。上面有較為詳細的例子和代碼,其中裡面的源碼包含有一些常用的操作例子,包括設定頁首、頁尾、頁碼、字型樣式、表格、插入圖片等常用的操作。這裡介紹的是如何使用該輪子來製作一個簡曆。

在許多招聘網站都有一個簡曆下載的功能,如何用php實現呢?在PHPOffice/PHPWord裡面就有一個非常簡單的產生一個word文檔,向文檔中插入一些文字。這裡我使用的方式比較取巧,這個輪子的說明文檔中有template processing,我理解為模板替換,也就是跟laravel的blade模板一個概念。接下來就不多廢話,直接說如何操作,這裡提一句使用的是laravel架構。

1.安裝PHPOffice/PHPWord

composer require phpoffice/phpword

2.建立控制器DocController及test方法用於測試,並建立路由。

php artisan make:controller DocController

3.建立word模板,這裡說明一下,該輪子替換的是word文檔中格式為${value}格式的字串,這裡我簡易的搭建一個模板如1所示:

可以看到有一些基本的資訊,這些可以從資料庫中撈取資料。不過這次是直接使用替換的方式,像工作經曆和教育經曆這種多行表格的模式這裡也只需要取一行作為模板即可。

4.具體代碼

//load template docx        $templateProcessor = new TemplateProcessor('./sample.docx');        //基礎資訊填寫替換        $templateProcessor->setValue('update_at', date('Y-m-d H:i:s'));        $templateProcessor->setValue('number', '123456');        $templateProcessor->setValue('Name', '張三');        $templateProcessor->setValue('sex', '男');        $templateProcessor->setValue('birth', '1996年10月');        $templateProcessor->setValue('age', '22');        $templateProcessor->setValue('shortcut', '待業/aaa');        $templateProcessor->setValue('liveArea', '福建省莆田市涵江區');        $templateProcessor->setValue('domicile', '福建省莆田市涵江區');        $templateProcessor->setValue('address', '');        $templateProcessor->setValue('hopetodo', 'IT');        $templateProcessor->setValue('hopeworkin', '互連網');        $templateProcessor->setValue('hopes', '7000+');        $templateProcessor->setValue('worklocation', '福建省莆田市');        $templateProcessor->setValue('phone', '123456789');        $templateProcessor->setValue('mail', '456789@qq.com');        $templateProcessor->setValue('qqnum', '456789');        $templateProcessor->setValue('selfjudge', '哇哈哈哈哈哈哈哈');        //工作經曆表格替換        $templateProcessor->cloneRow('experience_time', 2);//該表通過複製行的方式,形成兩行        $templateProcessor->setValue('experience_time#1', '2010-09~2014-06');//每行參數是用value#X(X表示行號,從1開始)        $templateProcessor->setValue('job#1', 'ABC company CTO');        $templateProcessor->setValue('experience_time#2', '2014-09~至今');        $templateProcessor->setValue('job#2', 'JBC company CTO');        //教育經曆        $templateProcessor->cloneRow('time', 2);        $templateProcessor->setValue('time#1', '2010-09~2014-06');        $templateProcessor->setValue('school#1', 'ABC');        $templateProcessor->setValue('major#1', 'Computer science');        $templateProcessor->setValue('time#2', '2014-09~至今');        $templateProcessor->setValue('school#2', 'JBC');        $templateProcessor->setValue('major#2', 'Computer science');        //語言能力        $templateProcessor->cloneRow('lang',2);        $templateProcessor->setValue('lang#1', '漢語|精通');        $templateProcessor->setValue('lang#2', '英語|精通');        //技能        $templateProcessor->cloneRow('skill',3);        $templateProcessor->setValue('skill#1', 'JAVA|精通');        $templateProcessor->setValue('skill#2', 'Python|精通');        $templateProcessor->setValue('skill#3', 'PHP|精通');        // Saving the document        $templateProcessor->saveAs('my.docx');

這樣就可以通過建立word模板的方式產生一個簡曆了。

相關推薦:

php製作圓形帳戶圖片方法

PHP製作毫秒時間戳記的方法

如何使用Thinkphp製作網頁直播




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.