思路 

1. 加载word文件。
2. 循环判断加载出来的数据。
( 数据下面有很多个节点 )
( 节点是按照数据的类型分类的 例如 无样式的文本是RunText,换行是TextBreak,表格是table.....等)
3. 循环判断他们的数据类型是什么进行读取。
4. 如果是文本的话就使用 节点->getText() 就直接可以获取到文本内容 表格的话有点麻烦。

关于操作word的一些东西
https://segmentfault.com/a/1190000019479817?utm_source=tag-newesthttps://www.cnblogs.com/mengluo/p/10280381.html(本博源于这个博客)

代码
// 准备条件 下载 phpword 的拓展库

// 加载
$source = IOFactory::load($filePath)->getSections(); foreach ($source as $S)
{
$elements = $S->getElements();
if (!empty($this->GetElement($elements)))
{
$arr = $this->GetElement($elements);
$this->todoGo($arr,$tableCatId,$tableStageId,$filePath,$versionId);
}
} // 逐级读取/读取节点
function GetElement($elements)
{
$arrx=[];
foreach ($elements as $k=>$e1)
{
// 获取word对象中对应内容类型类的节点的类名
$class = $this->getClass($e1);
if ($class=='Table')
{
// 获取最大行
$rows=count($e1->getRows()); // 获取最大列
$cells=$e1->countColumns(); $arrx[$k]['rows']=$rows;
$arrx[$k]['cells']=$cells; // 循环获取对应行和列下的单元格的文本内容
for($i=0;$i<$rows;$i++)
{
// 获取对应行
$rows_a=$e1->getRows()[$i];
for($j = 0; $j < $cells; $j++)
{
// 获取对应列
$x=$rows_a->getCells()[$j];
$arrx[$k]['text'][$i+1][$j+1]=$this->getTextElement($x);
}
}
}
}
} //获取文本的节点
function getTextElement($E)
{
$elements = $E->getElements();
$xas='';
$result = [];
$inResult=[];
$text=[]; foreach($elements as $inE)
{
$ns = get_class($inE);
$elName = explode('\\', $ns)[3]; if($elName == 'Text')
{
$result[] = $this->textarr($inE);
}
elseif (method_exists($inE, 'getElements'))
{
$inResult = $this->getTextElement($inE);
} if(!is_null($inResult))
{
$result = array_merge($result, $inResult);
}
}
return count($result) > 0 ? $result : null;
} //获取文本
function textarr($e)
{
$textArr['text']=$e->getText();
return $textArr;
}

 

php 使用 phpword 操作 word 读取 word的更多相关文章

  1. aspose.word 读取word段落内容

    注:转载请标明文章原始出处及作者信息 aspose.word 插件下载 链接: http://pan.baidu.com/s/1qXIgOXY 密码: wsj2 使用原因:无需安装office,无兼容 ...

  2. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  3. C# PDF Page操作——设置页面切换按钮 C# 添加、读取Word脚注尾注 C#为什么不能像C/C++一样的支持函数只读传参 web 给大家分享一个好玩的东西,也许你那块就用的到

    C# PDF Page操作——设置页面切换按钮   概述 在以下示例中,将介绍在PDF文档页面设置页面切换按钮的方法.示例中将页面切换按钮的添加分为了两种情况,一种是设置按钮跳转到首页.下页.上页或者 ...

  4. POI 读取word (word 2003 和 word 2007) (转)

    最近在给客户做系统的时候,用户提出需求,要能够导入 word 文件,现在 microsoft word 有好几个版本 97.2003.2007的,这三个版本存储数据的格式上都有相当大的差别,而现在 9 ...

  5. php 读取 word

    ---恢复内容开始--- 首先安装com扩展: php.ini php.ini 确保有此语句 [PHP_COM_DOTNET] extension=php_com_dotnet.dll   php.i ...

  6. php 如何写入、读取word,excel文档

    如何在php写入.读取word文档 <? //如何在php写入.读取word文档 // 建立一个指向新COM组件的索引 $word = new COM("word.applicatio ...

  7. Java读取word中表格

    因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...

  8. [转] C#实现在Sql Server中存储和读取Word文件 (Not Correct Modified)

    出处 C#实现在Sql Server中存储和读取Word文件 要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABL ...

  9. 全面了解POI操作Microsoft Office(Word、Excel、PowerPoint)

    POI 与 Microsoft Office 1. POI 简介 POI 是 Apache 下的 Jakata 项目的一个子项目,主要用于提供 java 操作 Microsoft Office 办公套 ...

随机推荐

  1. Linux 百度网盘卡在等待页

    解决办法1 如果无法登录百度网盘,一直在加载,运行命令:rm -rf ~/baidunetdisk 然后关闭百度客户端,重新登录百度客户端. 解决办法2 如果已经登录进百度网盘,退出百度网盘时,不要直 ...

  2. 轻松理解JVM的分代模型

    前言 上篇文章我们一起对jvm的内存模型有了比较清晰的认识,小伙伴们可以参考JVM内存模型不再是秘密这篇文章做一个复习. 本篇文章我们将针对jvm堆内存的分代模型做一个详细的解析,和大家一起轻松理解j ...

  3. Selenium截屏 图片未加载的问题解决--【懒加载】

    需求: 截屏后转PDF. 问题: selenium截屏后,图片未加载 如下图: 原因: 网站使用了懒加载技术:只有在浏览器中纵向滚动条滚动到指定的位置时,页面的元素才会被动态加载. 什么是图片懒加载? ...

  4. JS-YAML -YAML 1.2 JavaScript解析器/编写器

    下载 JS-YAML -YAML 1.2 JavaScript解析器/编写器JS-YAML -YAML 1.2 JavaScript解析器/编写器 在线演示 这是YAML的实现,YAML是一种对人友好 ...

  5. 第十四周C++学习总结

    类模板使用方法:类模板名 <数据类型> 对象名: C++有个标准模板库(STL)(standard template library),编程时使用它会提高程序的可靠性. Stl 包含了(容 ...

  6. hdfs的JAVA必会操作

    hdfs的必会操作 创建目录 //创建目录 public static void mkdir(String filePath) throws URISyntaxException, IOExcepti ...

  7. day18 Pyhton学习 内置函数最后七个

    1. enumerate  枚举函数 for i in enumerate(['a','b','c'],1): print(i)#(1, 'a')(2, 'b')(3, 'c') goods_lst= ...

  8. localhost与127.0.0.1与0.0.0.0

    localhost localhost其实是域名,一般系统默认将localhost指向127.0.0.1,但是localhost并不等于127.0.0.1,localhost指向的IP地址是可以配置的 ...

  9. 超简单的CDH6部署和体验(单机版)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  10. CPU 底层运算之乘法运算

    CPU 运算加减法运算 假设计算  3+3  原码是0011 * 0011(以4位存贮单元,因为是原码,最高位不代表符号位) 1. 首先 判断 两个加数是否有 负数(减法)  如果有 负数 先将负数转 ...