小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Microsoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的問題

 行走在理想邊緣 2019-11-01

轉(zhuǎn)自原文 xiaoanian, Microsoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的問題

因?yàn)橐鲆粋€提取ppt文字的工程,第一次接觸Office開發(fā).

以下是源碼:

復(fù)制代碼
    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);  
                }  
            }  
        }  
    }  
復(fù)制代碼

代碼倒挺簡單,但是添加引用廢了我半天的力氣。其中,引用中出現(xiàn)以下內(nèi)容:

(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足以(如上圖中圈出的那個組件)!

實(shí)踐證明,

(1)如果只添加Microsoft.Office 1x.0 Object library,會出現(xiàn)下面的錯誤:

錯誤 1 類型“Microsoft.Office.Core.MsoTriState”在未被引用的程序集中定義。必須添加對程序集“office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”的引用

(2)如果Office和Microsoft.Office 1x.0 Object library都添加,就會出現(xiàn)下面的錯誤:

錯誤 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中都出現(xiàn)了。正確做法:只添加Office引用即可

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多