PHPWord使用简介

PHP导出word文档,可实现自动分页,可插入图片,表格。

1、下载PHPWord
(1)使用composer:

      "require":{
           "phpoffice/phpword": "v0.14.*"
       }

(2)GitHub:点击打开链接

2、使用
(1)GitHub上有详细说明,下载的包里面有很多例子
(2)简单示例
(3)中文手册

require_once './ThinkPHP/Library/Org/PHPWord/vendor/autoload.php';
$title = $data['version'] . ' ' . $data['semester'] . ' ' . $data['unit'];
$num = $data['num'];
$mean = $data['mean'];
$phpWord = new \PhpOffice\PhpWord\PhpWord();
// 新建文档
$section = $phpWord->addSection();
$phpWord->addTitleStyle(2, array('bold' => true, 'size' => 14, 'name' => 'Arial', 'Color' => '333'), array('align' => 'center'));
$section->addTitle("$title", 2);
$section->addTextBreak(1);
$section->addText("姓名:题量: $num分数:");
$tableStyle = array(
    'borderSize' => 6,
    'borderColor' => '006699'
);
$table = $section->addTable($tableStyle);
$fancyTableCellStyle = array('valign' => 'center');
$cellRowSpan = array('vMerge' => 'restart', 'valign' => 'center');
$cellRowContinue = array('vMerge' => 'continue');
$fontStyle['name'] = 'Arial';
$fontStyle['size'] = 14;
$thStyle['name'] = 'Arial';
$thStyle['size'] = 12;
$thStyle['bold'] = true;
$paraStyle['align'] = 'center';
$table->addRow(500);
$table->addCell(3500, $fancyTableCellStyle)->addText('答题区', $thStyle, $paraStyle);
$table->addCell(1000, $fancyTableCellStyle)->addText('批改区', $thStyle, $paraStyle);
$table->addCell(3500, $fancyTableCellStyle)->addText('答题区', $thStyle, $paraStyle);
$table->addCell(1000, $fancyTableCellStyle)->addText('批改区', $thStyle, $paraStyle);
$len = ceil($num / 2);
for ($i = 0; $i < $len; $i++) {
    $table->addRow(500);
    $table->addCell(3500, $fancyTableCellStyle)->addText(($i * 2 + 1) . '.' . $mean[$i * 2], $fontStyle);
    $table->addCell(1000, $cellRowSpan)->addText(' ');
    if ($num % 2 != 0 && $i == $len - 1) {
        $table->addCell(3500, $fancyTableCellStyle)->addText('');
    } else {
        $table->addCell(3500, $fancyTableCellStyle)->addText(($i * 2 + 2) . '.' . $mean[$i * 2 + 1], $fontStyle);
    }
    $table->addCell(1000, $cellRowSpan)->addText(' ');
    $table->addRow(1000);
    $table->addCell(3500, $fancyTableCellStyle)->addText('答案:');
    $table->addCell(null, $cellRowContinue);
    if ($num % 2 != 0 && $i == $len - 1) {
        $table->addCell(3500, $fancyTableCellStyle)->addText('');
    } else {
        $table->addCell(3500, $fancyTableCellStyle)->addText('答案:');
    }
 
    $table->addCell(null, $cellRowContinue);
}
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save("./Public/doc/word.docx");
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道compo...
    旱魃一样阅读 3,199评论 0 9
  • Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Compo...
    bycall阅读 2,294评论 0 1
  • 钢厂醒了! 设备的觉醒,当我们看见,当我们听见,我们开始为生存而战。关停后的摧毁,我们要生存,当生存的复杂度到了一...
    xtrbb阅读 139评论 0 0
  • 鹿玙-40 1.什么时间照的照片? 2012年6月,具体几号记不清了,反正是在大四临近毕业的时候。 2.在什么地方...
    鹿玙阅读 283评论 1 0
  • Vue选项的合并策略 1.选项 el、propsData 的合并策略 说明:el选项或者propsData选项只能...
    安乐_f487阅读 306评论 0 0