MDword 是 PHP 生成 word 的另一工具。
更新日志
项目介绍
主要用途:动态生成 word
优势:生成 word 只需关注动态数据及逻辑,无需关注式样的调整(式样可以借助 office word 调整母版即可)
与 PHPWord 的爱恨情仇
- PHP 编写的库(资源包)
- 用于生成 office word
- PHPWord 专注于一个元素一个元素的写入,而 MDword 则是专注于在母版的基础上修改,功能更强大,编码效率更高
- 修改文字式样,增加封面,修改页眉页脚 MDword 只需用 word 编辑软件调整母版,而 PHPWord 需要繁琐的去调整每个元素
- 可以自动生成目录
教程
//方法一
composer require mkdreams/mdword
//方法二,手动引入自动加载类
require_once('Autoloader.php');
![image]()
//新建类 加载 母版
$TemplateProcessor = new WordProcessor();
$template = 'temple.docx';
$TemplateProcessor->load($template);
//赋值
$TemplateProcessor->setValue('value', 'r-value');
//克隆并复制
$TemplateProcessor->clones('people', 3);
$TemplateProcessor->setValue('name#0', 'colin0');
$TemplateProcessor->setValue('name#1', [
['text'=>'colin1','style'=>'style','type'=>MDWORD_TEXT],
['text'=>1,'type'=>MDWORD_BREAK],
['text'=>'86','style'=>'style','type'=>MDWORD_TEXT]
]);
$TemplateProcessor->setValue('name#2', 'colin2');
$TemplateProcessor->setValue('sex#1', 'woman');
$TemplateProcessor->setValue('age#0', '280');
$TemplateProcessor->setValue('age#1', '281');
$TemplateProcessor->setValue('age#2', '282');
//图片复制
$TemplateProcessor->setImageValue('image', dirname(__FILE__).'/logo.jpg');
//删除某行
$TemplateProcessor->deleteP('style');
//保存
$rtemplate = __DIR__.'/r-temple.docx';
$TemplateProcessor->saveAs($rtemplate);
![image]()
![image]()
| 测试项 |
用时 (S) |
| 1 页母版赋值 100 次 |
0.04 |
| 1 页母版赋值 500 次 |
0.16 |
| 1 页母版赋值 1000 次 |
0.33 |
| 1 页母版赋值 10000 次 |
7.80 |
| 1750 页母版赋值 100 次 |
4.61 |
| 1750 页母版赋值 500 次 |
4.94 |
| 1750 页母版赋值 1000 次 |
5.43 |
| 1750 页母版赋值 10000 次 |
17.39 |
| 连续运行第几次 |
累积内存使用情况 |
备注 |
| 1 |
0.050590515136719 M |
首次需要加载 PHP 类 |
| 2 |
0.050949096679688 M |
|
| 3 |
0.050949096679688 M |
|
| 4 |
0.050949096679688 M |
|
| 5 |
0.050949096679688 M |
|
| 6 |
0.050949096679688 M |
|
| 7 |
0.050949096679688 M |
|
| 8 |
0.050949096679688 M |
|
更多案例