php生成带表格的word

<?php
namespace app\index\controller;
use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\Style\Table;
use PhpOffice\PhpWord\SimpleType\JcTable;
use PhpOffice\PhpWord\SimpleType\VerticalJc;
class Index
{
    public function index()
    {
       // 创建新的Word文档
        $phpWord = new PhpWord();
         
        // 添加一个新的空白页
        $section = $phpWord->addSection();
         
        // 设置表格的样式
        $styleTable = array(
            'borderSize' => 6,
            'borderColor' => '999999',
            'cellMargin' => 50,
            'alignment' => \PhpOffice\PhpWord\SimpleType\JcTable::CENTER
        );
        $phpWord->addFontStyle('titlestyle', array('bold' => true,'size' => 16,'name' => 'msyh'));//标题的样式
        $title = "报名表";
        //添加标题
        $section->addText($title,'titlestyle', ['alignment' => 'center']);
        $section->addTextBreak(1);


        // 表格样式
        $styleTable = array( 'borderSize'=>6, 'alignment' => 'center','cellMargin'=>80);
        // 第一行样式
        $styleFirstRow = array('bgColor'=>'f2f2f2' );
        $phpWord ->addTableStyle('myOwnTableStyle',$styleTable,$styleFirstRow);

        $cellRowContinue = array('vMerge' => 'continue');
        // 添加表格
        $table = $section->addTable($styleTable);
        // 添加表头
        $table->addRow(900);
        $table->addCell(8000, ['valign' => 'center','gridSpan'=>4])->addText('基本信息','titlestyle', ['alignment' => 'center']);
        

        $table->addRow();
        $table->addCell(2000)->addText("1.姓名");
        $table->addCell(2000)->addText("");
        $table->addCell(2000)->addText("2.性别");
        $table->addCell(2000)->addText("");

        $table->addRow(900);
        $table->addCell(2000, ['valign' => 'center'])->addText('3.身份证号码/护照编号');
        $table->addCell(2000, ['valign' => 'center','gridSpan'=>3])->addText('');

        $table->addRow();
        $table->addCell(2000)->addText("4.职称");
        $table->addCell(2000)->addText("");
        $table->addCell(2000)->addText("5.是否来自基层");
        $table->addCell(2000)->addText("");

        $table->addRow();
        $table->addCell(2000)->addText("6.年龄/岁");
        $table->addCell(2000)->addText("");
        $table->addCell(2000)->addText("7.联系电话。");
        $table->addCell(2000)->addText("");

        $table->addRow(900);
        $table->addCell(2000, ['valign' => 'center'])->addText('8.通讯地址');
        $table->addCell(2000, ['valign' => 'center','gridSpan'=>3])->addText('');
         
        // 将Word文档保存到文件
        $objWriter = IOFactory::createWriter($phpWord, 'Word2007');
        $objWriter->save('刘佳明.docx');
         
        echo 'Word文档已生成!';
    }
}



合并单元格的写法

$styleTable = array('borderSize' => 6, 'borderColor' => '999999');
$cellRowSpan = array('vMerge' => 'restart', 'valign' => 'center');
$cellRowContinue = array('vMerge' => 'continue');
$cellColSpan = array('gridSpan' => 2, 'valign' => 'center');
$cellHCentered = array('align' => 'center');
$cellVCentered = array('valign' => 'center');

$PHPWord->addTableStyle('Colspan Rowspan', $styleTable);
$table = $section->addTable('Colspan Rowspan');
$table->addRow();
$table->addCell(2000, $cellRowSpan)->addText('A', null, $cellHCentered);
$table->addCell(4000, $cellColSpan)->addText('B', null, $cellHCentered);
$table->addCell(2000, $cellRowSpan)->addText('E', null, $cellHCentered);
$table->addRow();
$table->addCell(null, $cellRowContinue);
$table->addCell(2000, $cellVCentered)->addText('C', null, $cellHCentered);
$table->addCell(2000, $cellVCentered)->addText('D', null, $cellHCentered);
$table->addCell(null, $cellRowContinue);

附图

未命名1720825278.png

打赏

看恩吧
网站不承担任何有关评论的责任
  • 最新评论
  • 总共条评论
取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦