Phpword+thinkphp5

4 篇文章 0 订阅
3 篇文章 0 订阅

折腾了一天最终是用Composer来完成,因为直接官网下的https://github.com/PHPOffice/PHPWord中找不到common文件,会报找不到Text,

弄好之后直接访问控制器对应方法就可以下载下来,打开就会看到内容,更多内容正在完善中,尽情期待吧

用Composer下下来后安装下载phpword,会生成一个文件,如下图所示,打开vendor复制里面的phpoffice到thinkphp5项目中的extend下,将phpoffice改为PhpOffice,因为里面大部分命名空间都是use PhpOffice\PhpWord…;
在这里插入图片描述
在项目的controller下建立Word控制器
内容如下:

<?php
/**
 * Created by PhpStorm.
 * User: insist
 * Date: 2019/1/22
 * Time: 10:25
 */
/**
 * Created by PhpStorm.
 * User: insist
 * Date: 2018/12/4
 * Time: 16:31
 */
namespace app\index\controller;

use PhpOffice\Common\Font;
use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\PhpWord;
use think\Controller;


class Word extends Controller
{
    public function index(){

        // Create a new PHPWord Object
        $PHPWord = new PhpWord();
        $PHPWordHelper= new Font();

        $PHPWord->setDefaultFontName('隶书');  // 全局字体
        $PHPWord->setDefaultFontSize(16);       // 全局字号为3号

        // 设置文档的属性,这些在对文档右击属性可以看到,也可以省去这些步骤
        $properties = $PHPWord->getDocumentProperties();
        $properties->setCreator('陶永斌');   // 创建者
        $properties->setCompany('笑口袋'); // 公司
        $properties->setTitle('某某文档'); // 标题
        $properties->setCreated( time() );      // 创建时间
        $properties->setModified( time() );     // 修改时间



        // 添加3号仿宋字体到'FangSong16pt'留着下面使用
        $PHPWord->addFontStyle('FangSong16pt', array('name'=>'仿宋', 'size'=>16));

        // 添加段落样式到'Normal'以备下面使用
        $PHPWord->addParagraphStyle(
            'Normal',array(
                'align'=>'both',
                'spaceBefore' => 0,
                'spaceAfter' => 0,
                'spacing'=>$PHPWordHelper->pointSizeToTwips(2.8),
                'lineHeight' => 1.19,  // 行间距
                'indentation' => array( // 首行缩进
                    'firstLine' => $PHPWordHelper->pointSizeToTwips(32)
                )
            )
        );

        // Section样式:上3.5厘米、下3.8厘米、左3厘米、右3厘米,页脚3厘米
        // 注意这里厘米(centimeter)要转换为twips单位
        $sectionStyle = array(
            'orientation' => 'landscape',                                                       //页面方向: 默认竖向:null/横向:landscape
            'marginLeft' => $PHPWordHelper->centimeterSizeToTwips(0),
            'marginRight' => $PHPWordHelper->centimeterSizeToTwips(0),
            'marginTop' => $PHPWordHelper->centimeterSizeToTwips(0),
            'marginBottom' => $PHPWordHelper->centimeterSizeToTwips(0),
            'pageNumberingStart' => 1, // 页码从1开始
            'footerHeight' => $PHPWordHelper->centimeterSizeToTwips(0),
        );
        $section = $PHPWord->addSection($sectionStyle); // 添加一节

        // 下面这句是输入文档内容,注意这里用到了刚才我们添加的
        // 字体样式FangSong16pt和段落样式Normal
        $section->addText('某某某文案策划', 'FangSong16pt', 'Normal');
        $section->addLink(
            'https://blog.csdn.net/qq_28761593/article/details/86598754',
            'tp5+phpword',
            array(
                'size'=>20,
                'name'=>'微软雅黑',
                'bold'=>true,
                'Color'=>'#f00',),
            null
        );
        $section->addTextBreak(1); // 新起一个空白段落
        header("Content-Type: application/doc");
        header("Content-Disposition: attachment; filename=".date("YmdHis").".doc");
        $objWriter = IOFactory::createWriter($PHPWord, 'Word2007');

        $objWriter->save('php://output');
    }


}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值