ThinkPHP6.0內(nèi)容導(dǎo)Word的使用方法

這篇文章給大家分享的是有關(guān)ThinkPHP6.0內(nèi)容導(dǎo) Word的使用方法的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

目前成都創(chuàng)新互聯(lián)公司已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、江口網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

(一)環(huán)境配置

  • 基礎(chǔ)環(huán)境

    • 系統(tǒng)環(huán)境:Windows10 x64

    • PHP集成環(huán)境:phpstudy

    • PHP依賴管理工具:Composer

    • 手冊:Thinkphp

(二)安裝ThinkPHP6.0和Phpword擴(kuò)展

(1)安裝ThinkPHP6.0

composer create-project topthink/think phpword

(2)安裝phpword插件

composer require phpoffice/phpword

(三) 內(nèi)容導(dǎo)出word

(1)內(nèi)容導(dǎo)出生成word文檔

<?php
namespace app\admin\service;

use Jrk\Tool;
use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\PhpWord;

class WordService
{
    /**
     * @param $text
     * @param null $title
     * @param bool $save
     * @return array
     * @throws \PhpOffice\PhpWord\Exception\Exception
     * @author: LuckyHhy <jackhhy520@qq.com>
     * @describe:
     */
    public static function exportToword($text,$title=null,$save=false){
        $phpWord=new PhpWord(); //實(shí)例化
        //調(diào)整頁面樣式
        $sectionStyle = array('orientation' => null,
            'marginLeft' => 300,
            'marginRight' => 300,
            'marginTop' => 300,
            'marginBottom' => 400);
        $section = $phpWord->addSection($sectionStyle);
        //添加頁眉
      /*  $header=$section->addHeader();
        $k=$header->addTextRun();
        //頁眉添加一張圖片
        $k->addImage(app()->getRootPath().'public'.DS."static/images/jrk.jpg",array(
            'width'         => '100%',
            'height'        => 60,
            'marginTop'     => -1,
            'marginLeft'    => 1,
            'wrappingStyle' => 'behind',
        ));*/

        //添加頁腳
        $footer = $section->addFooter();
        $f=$footer->addTextRun();

        $f->addImage(app()->getRootPath().'public'.DS."static/images/jrk.jpg",array(
            'width'         => 105,
            'height'        => 65,
            'marginTop'     => -1,
            'marginLeft'    => 1,
            'wrappingStyle' => 'behind',
        ));

        $footer->addPreserveText('Page {PAGE} of {NUMPAGES}.',array('align'=>'center'));

        //添加標(biāo)題
        if (!empty($title)){
            $section->addText(
                $title,
                array('name' => '黑體', 'size' => 15),
                array('align'=>'center')
            );
        }
        //添加換行符
        $section->addTextBreak(2);

        //添加文本
        if (is_array($text)){
            foreach ($text as $v){
                $section->addText(
                    $v,
                    array('name' => 'Arial', 'size' => 13),
                    array('lineHeight'=>1.5,'indent'=>1)
                );
            }
        }else{
            $section->addText(
                $text,
                array('name' => 'Arial', 'size' => 13),
                array('lineHeight'=>1.5,'indent'=>1)
            );
        }
        $fname=Tool::uniqidDateCode();
        if ($save){
            /*保存文檔到本地*/
            $objwrite =IOFactory::createWriter($phpWord);
            $t=date("Ymd",time());
            //保存的路徑和中文名稱適應(yīng)
            $dir      = iconv("UTF-8", "GBK", app()->getRootPath().'public'.DS.'words'.DS.$t);
            if (!file_exists($dir)) {
                @mkdir($dir, 0777, true);
            }
            $pa = $t."/".$fname.".docx";
            $objwrite->save(app()->getRootPath().'public'.DS.'phpoffices/words'.DS.$pa);
            return  ['code'=>1,'url'=>'/phpoffices/words/'.$pa,'domain'=>request()->domain(true)];
        }else{
            //不保存到服務(wù)器,直接輸出瀏覽器下載
            $name=$fname.".docx"; //文件名稱
            $phpWord->save($name,"Word2007",true);
        }
        exit;
    }
}

(2)內(nèi)容生成 html 文件

 /**
     * @param $text
     * @param bool $save
     * @return array
     * @throws \PhpOffice\PhpWord\Exception\Exception
     * @author: LuckyHhy <jackhhy520@qq.com>
     * @describe:
     */
    public static function makeHtml($text,$save=false){
        $phpWord=new PhpWord(); //實(shí)例化
        $section = $phpWord->addSection();

        $fontStyleName = 'oneUserDefinedStyle';
        $phpWord->addFontStyle(
            $fontStyleName,
            array('name' => 'Tahoma', 'size' => 13, 'color' => '1B2232', 'bold' => true)
        );
        if (is_array($text)){
            foreach ($text as $v){
                $section->addText(
                    $v,
                    $fontStyleName
                );
            }
        }else{
            $section->addText(
                $text,
                $fontStyleName
            );
        }
        $fname=Tool::uniqidDateCode();
        if ($save){
            $objwrite = IOFactory::createWriter($phpWord, 'HTML');
            $t=date("Ymd",time());
            //保存的路徑和中文名稱適應(yīng)
            $dir      = iconv("UTF-8", "GBK", app()->getRootPath().'public'.DS.'phpoffices/htmls'.DS.$t);
            if (!file_exists($dir)) {
                @mkdir($dir, 0777, true);
            }
            $pa = $t."/".$fname.".html";
            $objwrite->save(app()->getRootPath().'public'.DS.'phpoffices/htmls'.DS.$pa);
            return  ['code'=>1,'url'=>'/phpoffices/htmls/'.$pa,'domain'=>request()->domain(true)];
        }else{
            $name=$fname.".html"; //文件名稱
            $phpWord->save($name,"HTML",true);
        }
        exit;
    }

感謝各位的閱讀!關(guān)于ThinkPHP6.0內(nèi)容導(dǎo) Word的使用方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

當(dāng)前名稱:ThinkPHP6.0內(nèi)容導(dǎo)Word的使用方法
網(wǎng)站路徑:http://www.muchs.cn/article20/gcehjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化外貿(mào)建站、定制網(wǎng)站、定制開發(fā)、軟件開發(fā)面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)