Microsoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的问题

简介:

转自原文 xiaoanian, Microsoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的问题

 

因为要做一个提取ppt文字的工程,第一次接触Office开发.

以下是源码:

复制代码
    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Text;  
    using PowerPoint = Microsoft.Office.Interop.PowerPoint;  
    using Microsoft.Office.Core;  
    using System.Runtime.InteropServices;  
    namespace ConsoleApplication1  
    {  
        public class Program  
        {  
            public static void Main(string[] args)  
            {  
                String fileName = "F://test.ppt";  
                Program.Parse(fileName);  
            }  
            public static void Parse(String fileName)  
            {  
                try  
                {  
                    PowerPoint.Application pa = new PowerPoint.ApplicationClass();  
                    PowerPoint.Presentation pp = pa.Presentations.Open(fileName,  
                                                                                                          Microsoft.Office.Core.MsoTriState.msoTrue,  
                                                                                                          Microsoft.Office.Core.MsoTriState.msoFalse,  
                                                                                                          Microsoft.Office.Core.MsoTriState.msoFalse);  
                    Console.WriteLine("Open Success");  
                    PowerPoint.TextFrame frame;  
                    String text;  
                    foreach (PowerPoint.Slide slide in pp.Slides)  
                    {                      
                        foreach (PowerPoint.Shape shape in slide.Shapes)  
                        {  
                              
                            if (shape.HasTextFrame == Microsoft.Office.Core.MsoTriState.msoTrue)  
                            {  
                                frame = shape.TextFrame;  
                                if (frame.HasText == Microsoft.Office.Core.MsoTriState.msoTrue)  
                                {  
                                      
                                    text = frame.TextRange.Text;  
                                    Console.WriteLine(text);  
                                }  
                            }  
                        }  
                    }  
                }  
                catch (Exception e)  
                {                  
                    Console.WriteLine(e.Message);  
                }  
            }  
        }  
    }  
复制代码

代码倒挺简单,但是添加引用废了我半天的力气。其中,引用中出现以下内容:

(1).net中有Microsoft.Office.Interop.PowerPoint, Office

(2) com中有Microsoft.Office 1x.0 Object library

Microsoft.Office.Interop.PowerPoint肯定是要添加的.

但Office和Microsoft.Office 1x.0 Object library添加谁?

只添加Office足以(如上图中圈出的那个组件)!

 

实践证明,

(1)如果只添加Microsoft.Office 1x.0 Object library,会出现下面的错误:

错误 1 类型“Microsoft.Office.Core.MsoTriState”在未被引用的程序集中定义。必须添加对程序集“office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”的引用

(2)如果Office和Microsoft.Office 1x.0 Object library都添加,就会出现下面的错误:

错误 1 类型“Microsoft.Office.Core.MsoTriState”同时存在于“E:/Program Files/Microsoft Visual Studio 9.0/Visual Studio Tools for Office/PIA/Office12/Office.dll”和“C:/Documents and Settings/Administrator/我的文档/Visual Studio 2008/Projects/PPTPaser/ConsoleApplication1/obj/Debug/Interop.Microsoft.Office.Core.dll”中

原因是MsoTriState在两个dll中都出现了。正确做法:只添加Office引用即可

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。



    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/8117909.html,如需转载请自行联系原作者





相关文章
|
SQL 数据库
Microsoft SQL Server 2000数据还原
Microsoft SQL Server 2000还原数据操作流程 1、开始 - 所有程序 - Microsoft SQL Server - 企业管理器(如图1-1)。
1056 0
|
SQL 数据库
Microsoft SQL Server 2000数据附加
Microsoft SQL Server 2000附加数据操作流程 1、开始 - 所有程序 - Microsoft SQL Server - 企业管理器(如图1-1)。
1059 0
|
SQL 数据库 Windows
Microsoft SQL Server 2008数据还原
Microsoft SQL Server 2008还原数据操作流程 1、开始 - 所有程序 - Microsoft SQL Server 2008 R2 - SQL Server Management Studio(如图1-1)。
1074 0
|
SQL 数据库 Windows
Microsoft SQL Server 2000数据库备份
Microsoft SQL Server 2000备份数据操作流程 1、开始 - 所有程序 - Microsoft SQL Server - 企业管理器(如图1-1)。
1183 0
|
SQL 监控 数据库
Microsoft SQL Server 2008清理LDF日志
Microsoft SQL Server 2008 LDF数据文件清理方法。 PS:由于该操作涉及数据库中的数据,请在操作前先做好数据备份。 准备:Microsoft SQL Server 2008清理LDF脚本,请点击下载获取。
1627 0
|
SQL 数据库 Windows
Microsoft SQL Server 2008修改混合模式
数据库身份验证SQL Server和Windows设置 1、开始 - 所有程序 - Microsoft SQL Server 2008 R2 - SQL Server Management Studio(如图1-1) 图 1-1 2、进入后会弹出窗口【连接到服务器】,在【身份验证】选择中【Windows身份验证】— 点击【连接】(如图1-2) 图 1-2 3、在数据库服务实例名(如图1-3,WIN-VQ5SKTLJ9EU\sql位置)点击鼠标右键【属性】。
1151 0
|
SQL 数据库 数据安全/隐私保护
Microsoft SQL Server 2008修改sa密码
数据库sa密码忘记处理方案 1、开始 - 所有程序 - Microsoft SQL Server 2008 R2 - 点击SQL Server Management Studio(如图1-1)。
1491 0
|
SQL 数据库 数据安全/隐私保护
Microsoft SQL Server 2000修改sa密码提示错误:2812
报错提示:错误 2812:未能找到存储过程 ‘ sp_password ’。 准备:存储过程修复脚本,请点击下载获取。下载完毕后,请放置C盘根目录并解压。
1064 0
|
SQL 数据库 Windows
Microsoft SQL Server 2000修改混合模式
数据库身份验证SQL Server和Windows设置 1、开始—所有程序—Microsoft SQL Server—企业管理器,进入Microsoft SQL Server 2000数据库中(如图1-1)。
1151 0
|
SQL 数据库 Windows
Microsoft SQL Server 2000收缩MDF数据
Microsoft SQL Server 2000 MDF数据文件清理方法。 PS:由于该操作涉及数据库中的数据,请在操作前先做好数据备份。 准备:Microsoft SQL Server 2000收缩MDF脚本,请点击下载获取。
1095 0