POI解析pptx所有文本

含组合内的文本


jar包用的是POI 3.8

/**
	 * 读取ppt文字
	 * @throws Exception 
	 */
	public void ReadPPT() throws Exception {
		
		InputStream is = new FileInputStream("D:\\pac\\ppt.pptx");
		XMLSlideShow ppt = new XMLSlideShow(is);
		XSLFSlide[] slide = ppt.getSlides();
		for (int i = 0; i < slide.length; i++) {
//			System.out.println(slide[i].getTitle());
//			TextRun[] textRuns = slide[i].getTextRuns();
		    XSLFShape[] sh = slide[i].getShapes();
		    for (int j = 0; j < sh.length; j++) {//
//		        String name = sh[j].getShapeName();
		        getShapesTxt(sh[j]);
		    }
		}
	}

	public void getShapesTxt(XSLFShape shape) {
//		System.out.println(shape.getShapeName());
			  if ( shape instanceof XSLFTextShape ){
	          XSLFTextShape txtshape = (XSLFTextShape)shape ;
	          String sentence = txtshape.getText();
//	          String result = 
//	          System.out.println(txtshape.getText());
	          } else if(shape instanceof XSLFAutoShape){
	          XSLFAutoShape autoShape = (XSLFAutoShape)shape;
//	          System.out.println(autoShape.getText());
	          } else if(shape instanceof XSLFFreeformShape){
	          XSLFFreeformShape shape2 = (XSLFFreeformShape)shape;
//	          System.out.println(shape2.getText());
	          }else if ( shape instanceof XSLFConnectorShape ) {
	          XSLFConnectorShape shape2 = (XSLFConnectorShape)shape ;
//	          System.out.println(shape2.getShapeName()) ;
	          } else if ( shape instanceof XSLFPictureShape ){
	          XSLFPictureShape shape2 = (XSLFPictureShape)shape ;
//	          System.out.println(shape2.getShapeName()) ;
	          } else if ( shape instanceof XSLFGroupShape ){//如果是组合类型,继续下钻直到取到文本
	          XSLFGroupShape shape2 = (XSLFGroupShape)shape ;
	          for (XSLFShape xslfShape : shape2) {
					getShapesTxt(xslfShape);
	          }
	          } else if ( shape instanceof XSLFSimpleShape ){
	          XSLFSimpleShape shape2 = (XSLFSimpleShape)shape ;
//	          System.out.println(shape2.getShapeName()) ;
	          }
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
POI(Poor Obfuscation Implementation)是Apache基金会下的一个开源项目,提供了对Microsoft Office文档格式的解析和生成能力。其POI提供了对Word公式的解析功能。 Word公式是在Word文档插入的数学公式,可以进行各种数学计算和展示。POI的XWPF模块可以解析Word文档的公式,并提供相应的API进行操作和获取公式的相关信息。 要解析Word公式,首先需要使用POI库加载Word文档。可以使用XWPFDocument类加载.docx格式的Word文档,并使用XWPFDocument对象获取文档的所有段落。 接下来,遍历所有段落,使用XWPFParagraph对象获取段落的所有文本运行(XWPFRun)。对于每个文本运行,可以通过isOMath()方法判断是否为数学公式。如果是数学公式,则可以使用XWPFMaths构造函数创建一个XWPFMath对象,然后使用XWPFMath对象的getOMathList()方法获取公式列表。 遍历公式列表,可以通过OMath对象的getOMathParaList()方法获取公式的段落列表。再遍历段落列表,使用XWPFOMathPara对象获取段落的运行列表,然后使用XWPFOMathRun对象的getText()方法获取运行文本内容,即为公式的具体内容。 通过上述步骤,就可以使用POI解析Word文档的公式并获取的内容。使用POI库提供的功能,可以实现更多对公式的操作,如修改、删除等。 总之,POI库提供了解析Word公式的功能,通过使用相关的类和方法,我们可以轻松地对Word文档的公式进行解析和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值