.net操作PPT的读取问题

问题描述

PowerPoint.Applicationpa=newPowerPoint.ApplicationClass();PowerPoint.Presentationpp=pa.Presentations.Open(fileName,Microsoft.Office.Core.MsoTriState.msoTrue,Microsoft.Office.Core.MsoTriState.msoFalse,Microsoft.Office.Core.MsoTriState.msoFalse);Console.WriteLine("OpenSuccess");PowerPoint.TextFrameframe;Stringtext="";foreach(PowerPoint.Slideslideinpp.Slides){foreach(PowerPoint.Shapeshapeinslide.Shapes){if(shape.HasTextFrame==Microsoft.Office.Core.MsoTriState.msoTrue){frame=shape.TextFrame;if(frame.HasText==Microsoft.Office.Core.MsoTriState.msoTrue){text=frame.TextRange.Text.ToString();Console.WriteLine(text);}}上面是我读取PPT文本的代码,但是它是一行一行输出。。。我想一个PPT一下读取,全部输出。。而不是一行一行。

解决方案

解决方案二:
Console.WriteLine(text);那你把这行代码放第二个for循环外面
解决方案三:
引用1楼hxlaccp168的回复:

Console.WriteLine(text);那你把这行代码放第二个for循环外面

不行啊。。
解决方案四:
加载引用MicrosoftPowerPoint12.0objectlibrary和morcosoftoffice12.0objectLibrary其中的数字是版本号,低点不要紧。代码:publicstringPptReader(stringfilename){stringfullname=DocPath+filename;//绝对路径PowerPoint.Applicationpapp=newPowerPoint.Application();PowerPoint.Presentationppr=papp.Presentations.Open(fullname,Microsoft.Office.Core.MsoTriState.msoCTrue,MsoTriState.msoFalse,MsoTriState.msoFalse);stringdoc="";foreach(PowerPoint.Slideslideinppr.Slides){foreach(PowerPoint.Shapeshapeinslide.Shapes){if(shape.HasTextFrame==MsoTriState.msoTrue){if(shape.TextFrame.HasText==MsoTriState.msoTrue){doc+=shape.TextFrame.TextRange.Text.ToString();doc+="n";}}}}ppr.Close();System.Runtime.InteropServices.Marshal.ReleaseComObject(ppr);ppr=null;papp.Quit();System.Runtime.InteropServices.Marshal.ReleaseComObject(papp);papp=null;returndoc;}

时间: 2024-07-28 12:37:56

.net操作PPT的读取问题的相关文章

上传-c#操作PPT,不关闭PPT,操作无效

问题描述 c#操作PPT,不关闭PPT,操作无效 C#使用控件上传PPT文件,并对PPT进行评分操作,如果不关闭PPT,直接上传该PPT文档,判分结果就为0分:反之,关闭了PPT文档,再上传,进行评分,就会有正确的得分.请问这是为什么? 解决方案 类比 你无法对正在运行的程序或文件 进行改名移动等操作 解决方案二: 说明文件没有保存,或者上传文件出错. 解决方案三: word也是这样上传的,就没有问题

office-java 操作ppt word文件,复制其中的一部分

问题描述 java 操作ppt word文件,复制其中的一部分 急求java怎么复制ppt word文件!!不要全部复制,而只抽取其中的一部分,比如说文件一共2M,只需要提取前1M..用字节流的方式试了不行,生成的文件office表示文件已损坏... 解决方案 POI 是apache的处理类似问题的开源项目,试一下吧.http://poi.apache.org/

C++通过COM接口操作PPT

一. 背景说明 在VS环境下,开发C++代码操作PPT,支持对PPT模板的修改.包括修改文本标签.图表.表格.满足大多数软件生成PPT报告的要求,先手工创建好PPT模板,在程序中修改模板数据. 二. 开发环境构建 通过VS2012的Class Wizard创建PowerPoint和Excel的COM接口:由于需要操作PPT中的图表,而图表的数据使用Excel存储的,需要修改图表的数据就得生成Excel的COM接口. 1.1 进入类向导 1.2 添加PowerPoint COM接口 1.3 添加E

php操作XML、读取数据和写入数据的实现代码_php实例

xml文件 <?xml version="1.0" encoding="utf-8"?> <vip> <id>23</id> <username>开心的路飞</username> <sex>男</sex> <face>face/43.jpg</face> <email>123@qq.com</email> <qq>

visual studio-VS 2013中ASP.NET可以使用的PPT插件可以和office一样操作PPT

问题描述 VS 2013中ASP.NET可以使用的PPT插件可以和office一样操作PPT VS 2013中ASP.NET可以使用的PPT插件可以和office一样操作PPT 解决方案 可以,用vba或者npoi. 解决方案二: http://www.shaoqun.com/a/92371.aspx

[急!] c#如何直接操作ppt的图表数据,winfrom下mschart图表如何倒入到excel或ppt中

问题描述 如题如示,在网上查了下c#直接操作ppt的例子,但都只是很简单的写了下打开PPT插入标题插入一个图表等,但是都没有更具体的有如何可以直接更改PPT图表的数据源数据的例子.我现在的需求是,我有一个PPT的模板,里面有图表.有表格,当然还有最简单的文本,我现在想用程序去修改这个PPT中的内容,比如改图表数据源的数据,表格的数据等,却不知如何操作,找不到例子,只需要一个最简单的代码例子告诉我如何去操作就可以了,有哪位大大有这方面的经验,能否指教一下,万分感谢哦,对了,还有就是我用vs2010

用c#操作ppt的菜单栏如:墨迹工具

问题描述 请问如何用c#操作ppt的菜单栏,好比有一个winform程序,点击winform上的一个按钮,就点击ppt程序上[笔]这个选项,即ppt切换到墨迹工具.着急等,查了好几天了,求大神...我的思路是访问ppt上的菜单,找到墨迹工具的选项,强制点击:写了下面的代码,usingPPt=Microsoft.Office.Interop.PowerPoint;pptApplication=Marshal.GetActiveObject("PowerPoint.Application"

ADO.NET中的多数据表操作浅析之读取

ado|数据 在开发基于.NET平台的数据库应用程序时,我们一般都会用到DataSet,作为ADO.NET的核心类它为我们提供了强大的功能,而整个看上去就像是放在内存内的一个小型数据库,内部包括了DataTable.DataView.DataRow.DataColumn.Constraint以及DataRelation.当初看到它时真的是有点兴奋. 下面根据我的一些经验来举例说明在ADO.NET中的多表填充.关联表更新以及多个Command对象执行过程中启用事务的操作.欢迎大家交流,或在Blog

Asp定时执行操作 Asp定时读取数据库(网页定时操作详解)_小偷/采集

目前定时的操作有: 一.Html页面的定时刷新(Refresh--刷新 ) 1,Refresh (刷新) 代码使用说明 说明:让网页多长时间(秒)刷新自己,或在多长时间后让网页自动链接到其它网页. 用法:<Meta http-equiv="Refresh" Content="30"> <Meta http-equiv="Refresh" Content="5; Url=http://www.jb51.net"