PHP 生成 Word 工具 MDword 1.1.3 正式发布,支持合并表格单元格


MDword 是 PHP 生成 word 的另一工具。

更新日志

  • 合并表格单元格
  • 已知 bug 修复

项目介绍

主要用途:动态生成 word
优势:生成 word 只需关注动态数据及逻辑,无需关注式样的调整(式样可以借助 office word 调整母版即可)

与 PHPWord 的爱恨情仇

  • 共同点

  1. PHP 编写的库(资源包)
  2. 用于生成 office word
  • 不同点

  1. PHPWord 专注于一个元素一个元素的写入,而 MDword 则是专注于在母版的基础上修改,功能更强大,编码效率更高
  2. 修改文字式样,增加封面,修改页眉页脚 MDword 只需用 word 编辑软件调整母版,而 PHPWord 需要繁琐的去调整每个元素
  3. 可以自动生成目录

教程

  • 安装

//方法一
composer require mkdreams/mdword
//方法二,手动引入自动加载类
require_once('Autoloader.php');
  • 给母版 “temple.docx” 添加批注

image

  • 调用方法(更多更丰富的调用方式,参考案例:tests\samples\simple for readme,例如:目录、序号等)

//新建类 加载 母版
$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  

更多案例

  • 简单的综合案例
  • 带式样的文字
  • 添加图片
  • 克隆
  • 多种方式设置区块,解决无法添加批注问题
  • PHPWORD 写入到区块
  • 目录嵌入到表格
  • 合并表格单元格

相關推薦

2023-10-11

MDword 是 PHP 生成 word 的另一工具。 新特性 / Bug 修复: 根据md5值替换图片维持比例不变。 MDWORD_LINK支持style参数。 获取media列表。(母版word中的图片或者文件) 项目介绍 主要用途:动态生成 word 优势:生成 word 只需关

2023-04-11

写入器流式按行赋值时,对于值为 nil 的单元格将会跳过生成该单元格,相关 issue #756 获取超链接 GetCellHyperLink 函数支持读取合并单元格中的超链接 添加了新的导出类型 ChartType 以表示图表类型枚举 兼容性提

2023-01-10

323 流式按行赋值时,若行号未递增将返回错误,以避免生成的工作簿损坏,相关 issue #1139 按行流式写入工作表时,支持通过指定 RowOpts 为单元格设置样式,相关 issue #1354 支持流式设置窗格,相关 issue #1047 支持流

2023-07-05

复制为 Markdown 功能以适配新语法 优化 Typora 编辑时表格工具栏、行/列数编辑的样式 优化键盘操作的处理逻辑 优化各种排版内容的间距细节 优化题注样式,以及编辑时样式 优化 Dark 模式下 Mermaid 图表样式 彩虹引用内

2023-03-06

表格的乘法语法 ( #8658 )。 Docx 阅读器:解析 LibreOffice 生成的文件中的图像替代文本。LibreOffice 标记图像与 Word 略有不同;此更改使解析在查找图像描述(替代文本)时考虑到该差异。 DocBook 阅读器: DocBook 阅读器: 修

2022-11-16

个模块均可单独使用,也可以结合使用,帮助开发者快速生成pdf文档。 本次更新内容如下: 新特性: 【fop模块】新增XEasyPdfTemplatePageRectangle类(页面尺寸) 【fop模块】新增freemarker数据源(模板引擎) 【fop模块】新增jte

2023-10-19

NLYOFFICE 团队一直记得这一点,一直正在开发原生 PDF 编辑工具,方便万千用户。现在,ONLYOFFICE 团队推出了首版 PDF 编辑器,支持注释(包括文本突出显示、下划线和删除线)、表单填写、评论和绘图等功能。 在下一个版本中,

2023-03-13

个模块均可单独使用,也可以结合使用,帮助开发者快速生成pdf文档。 本次更新内容如下: 新特性: 【fop模块】表头组件新增设置最小行高的方法 【fop模块】表头组件新增设置最小列宽的方法 【fop模块】表尾组件

2022-07-06

/ 多端覆盖 / 跨技术栈的企业级前端应用。 目前,TDesign 发布了 2022 年 7 月的第一周更新,带来如下变更: 组件库 Vue2 for Web 发布 0.43.2 🌈 Features Form: 添加内置校验方法 whitespace 新增校验触发方式 trigger: 'blur' - 现在For

2023-02-02

Office 7.3 近日正式发布,更新内容如下: 所有编辑器 工具提示的统一外观(Windows, Linux) 窗口阴影效果(仅 Windows) 开始菜单和任务栏中的应用程序快捷方式 Jump List(任务)(Windows 7 及以后版本) 放弃第三方更新窗口,重

2023-11-14

关于 AiEditor AiEditor 是一个面向 AI 的下一代富文本编辑器,她基于 Web Component,因此支持 Layui、Vue、React、Angular 等几乎任何前端框架。她适配了 PC Web 端和手机端,并提供了 亮色 和 暗色 两个主题。除此之外,她还提供了灵

2023-11-30

标 优化:移除代码中一些无用的 log 输出 修复:修复工具栏中下拉菜单无法联动默认样式的问题 修复:插入表格时,显示问题 #I8JMYU:插入表格时,显示问题 文档:同步更新许多文档   快速开始 安装: npm i

2023-09-13

944 模板设置无边框,导出 Excel 还是有边框#1512 二维码生成的容错级别#1957 jeecgboot3.5.3 存在未授权 sql 注入(布尔盲注绕过)#5311 数值为 0 的单元格打印时变成空值#1972 字典 code sql 包含系统变量时,报表该列数据无法正常

2022-08-22

Excel,是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。 MyExcel 采用声明式语法来构建、读取 Excel,屏蔽 POI 的具体操作细节(对 POI 无感知),以开发常用的技术替代,使得构建(从简单到高度复杂 Excel)以及读取 Exc