分享 ThinkPHP6.0 内容导出 Word 案例

下面由thinkphp框架教程栏目给大家介绍 thinkphp6.0 内容导出 word 案例,希望对需要的朋友有所帮助!

                                                       

分享 ThinkPHP6.0 内容导出 Word 案例

(一)环境配置

基础环境系统环境:Windows10 x64PHP集成环境:phpstudyPHP依赖管理工具:Composer手册:Thinkphp

(二)安装ThinkPHP6.0和Phpword扩展

(1)安装ThinkPHP6.0

composer create-project topthink/think phpword

(2)安装phpword插件

立即学习“PHP免费学习笔记(深入)”;

composer require phpoffice/phpword

(三) 内容导出word

(1)内容导出生成word文档

<?phpnamespace appadminservice;use JrkTool;use PhpOfficePhpWordIOFactory;use PhpOfficePhpWordPhpWord;class WordService{    /**     * @param $text     * @param null $title     * @param bool $save     * @return array     * @throws PhpOfficePhpWordExceptionException     * @author: LuckyHhy      * @describe:     */    public static function exportToword($text,$title=null,$save=false){        $phpWord=new PhpWord(); //实例化        //调整页面样式        $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'));        //添加标题        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());            //保存的路径和中文名称适应            $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{            //不保存到服务器,直接输出浏览器下载            $name=$fname.".docx"; //文件名称            $phpWord->save($name,"Word2007",true);        }        exit;    }}

(2)内容生成 html 文件

 /**     * @param $text     * @param bool $save     * @return array     * @throws PhpOfficePhpWordExceptionException     * @author: LuckyHhy      * @describe:     */    public static function makeHtml($text,$save=false){        $phpWord=new PhpWord(); //实例化        $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());            //保存的路径和中文名称适应            $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;    }

以上就是分享 ThinkPHP6.0 内容导出 Word 案例的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/80557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
客户档案管理手机app哪个好
上一篇 2025年11月15日 16:30:41
为什么要做客户情绪管理
下一篇 2025年11月15日 16:30:55

相关推荐

发表回复

登录后才能评论
关注微信