# 读取模板
$plateform = new TemplateProcessor('xxx.docx');
$plateform->cloneBlock('block_name',count($lists),true,true);
foreach ($lists as $k => $item)
# 假设第三个值需要设置段落居中
if ($k == 2) {
$paragragph = new Paragraph();
$paragragph->setAlignment(Jc::CENTER);
$inline = new TextRun($paragragph);
$inline->addText('${content#'.($k+1).'}');
$template->setComplexBlock('content#'.($k+1), $inline);
$template->setValue('content#'.($k+1),$item);
# 保存文件
$plateform->saveAs(xxxx.docx);
PHPWORD
实现单元格内同一行文字设置不同的
样式
比如不同颜色不同大小粗细是否斜体等等
PHPWORD
这个问题困扰了我好几天,做过
PHP
Excel的实现方法,在
PHP
Excel中内置了富文本对象,直接创建就可以了,可以参考我另写的一篇
PHP
Excel的文章
在
PHPWORD
里没有提供富文本对象的功能,所以它的表格的某个单元格内没有办法采用富文本对象的方式,按照文本框的方式理论上要想实现的话采用:
$cell = $table->addCell(2000);
$catname = $cell->
public function
clone
Block
str($
block
name, $
clone
s = 1, $replace = true, $indexVariables = false, $variableReplacements = null)
echo date('Y-m-d h:i:s', time())...
使用
phpword
生成文档有两种方式
直接使用代码编写
word
文档,用代码生成
word
,但是设置
样式
,格式,图片非常麻烦,不建议使用。如果客户或产品提供一份
word
的
样式
,我们也难以完全复原,调
样式
很头疼的。
读取原有
word
模板,替换相关
变量
。个人感觉这种方式能满足绝大部分需求,实现起来也比较简单,所有的
样式
,格式直接在
word
模板里设置好,替换
变量
就可以了,还可以很方便的切换模板。本文主要介绍这种方式,毕竟我们是为了快速实现客户的需求,让客户提供一份
word
模板,我们稍微一改就可以了
phpword
生成
word
文档有两种方法
1 直接生成
word
文档 例如$
phpWord
= new
PHPWord
(); 然后可以在新的文档里用代码写所需要的内容 如 表格,图表,图片等。 相信弄过的同学都知道调
样式
的痛苦,所以这种方法不推荐。
2 使用
word
模板,在模板里设置
变量
然后替换
变量
就行了。这种方法简单快捷 大力推荐。
下面正式开始
1 安装
phpword
我用的laravel框架 所以就用comp