TP使用PhpWord导出固定格式文档

46 篇文章 0 订阅
4 篇文章 0 订阅

引用类

use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\TemplateProcessor;

public function word(){

        $PHPWord = new PhpWord();
        $section = $PHPWord->createSection();
        $PHPWord->addTitleStyle(1, array('bold' => true, 'size' => 16, 'name' => 'Arial', 'Color' => '333'), array('align' => 'center'));
        $section->addTitle("标题", 1);

        //定义样式数组
        $styleTable = array(
            'borderSize'=>6,
            'borderColor'=>'000000',
            'cellMargin'=>150
        );
        $styleFirstRow = array(
            'borderBottomSize'=>18,
            'borderBottomColor'=>'000000',
            'bgColor'=>'66bbff'
        );
        // 合并单元格
        $gridSpan2 = array('gridSpan' => 2);
        $gridSpan3 = array('gridSpan' => 3);
        $gridSpan5 = array('gridSpan' => 5);
        $gridSpan4 = array('gridSpan' => 4);

        $styleCell = array('valign'=>'center', 'align'=>'center');
        $fontStyle = array('size'=>10);

        //添加表格样式
        $PHPWord->addTableStyle('myOwnTableStyle',$styleTable,$styleFirstRow);

        //添加表格
        $table = $section->addTable('myOwnTableStyle');

        $table->addRow();
        $table->addCell(2500)->addText('第一行');
        $table->addCell(6500,$gridSpan3)->addText('测试5'); //合并列单元格

        $table->addRow();
        $table->addCell(2500,array('vMerge' => 'restart'))->addText('第二行');
        $table->addCell(725)->addText('勾选');
        $table->addCell(825)->addText('勾选');
        $table->addCell(825)->addText('换行');

        $table->addRow();
        $table->addCell(2500,array('vMerge' => 'continue'));
        $table->addCell(1550)->addText('<w:r><w:rPr><w:rFonts w:hint="eastAsia"/><w:lang w:val="en-US" w:eastAsia="zh-CN"/></w:rPr><w:sym w:font="Wingdings" w:char="00FE"/></w:r>勾选(选中)');
        $table->addCell(1650)->addText('<w:r><w:rPr><w:rFonts w:hint="eastAsia"/><w:lang w:val="en-US" w:eastAsia="zh-CN"/></w:rPr><w:sym w:font="Wingdings" w:char="00FE"/></w:r>勾选(选中)<w:br /><w:r><w:rPr><w:rFonts w:hint="eastAsia"/><w:lang w:val="en-US" w:eastAsia="zh-CN"/></w:rPr><w:sym w:font="Wingdings" w:char="00FE"/></w:r>勾选(选中)<w:br /><w:r><w:rPr><w:rFonts w:hint="eastAsia"/><w:lang w:val="en-US" w:eastAsia="zh-CN"/></w:rPr><w:sym w:font="Wingdings" w:char="00A8"/></w:r>勾选(选中)');
        $table->addCell(1650)->addText('一行<w:br />二行');

        $table->addRow();
        $table->addCell(2500)->addText('第三行');
        $table->addCell(1550)->addText('');
        $table->addCell(825)->addText('标题');
        $table->addCell(1650)->addText('');

        $table->addRow();
        $table->addCell(9000, array('gridSpan'=>5, 'valign' => 'center'))->addTextRun()->addText('合并全格');

        $table->addRow();
        $table->addCell(9000, $gridSpan5)->addText('备注:
<w:br />1、测试测是测测试测试测试测是测测试测试测试测是测测试测试
<w:br />2、测试测是测测试测试测试测是测测试测试测试测是测测试测试
<w:br />3、测试测是测测试测试测试测是测测试测试测试测是测测试测试

        $file = '测试.docx';
 
        //保存在服务器上-代码
        $objWriter = IOFactory::createWriter($PHPWord, 'Word2007');
        $objWriter->save('asd.docx');

        //直接浏览器下载不存储-代码
        header("Content-Description: File Transfer");
        header('Content-Disposition: attachment; filename="' . $file . '"');
        header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
        header('Content-Transfer-Encoding: binary');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Expires: 0');
        $xmlWriter = IOFactory::createWriter($PHPWord, 'Word2007');
        $xmlWriter->save("php://output");
    }

根据自己需求增加行数和单元格

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值