c# 获取Word文档的作者和主题

当然要先添加对Word的组件的引用,添加命名空间的引用,代码:

    Word.Application oWord;
            Word._Document oDoc;
            
object oMissing = Missing.Value;
            
object docBuiltInProps;

            
object Source = @"DocPath";
            
object Unknown =Type.Missing;
            oWord = new Word.Application();
            
            
try
            
{
                oDoc = oWord.Documents.Open(ref Source,ref Unknown, 
                    
ref Unknown,ref Unknown,ref Unknown, 
                    
ref Unknown,ref Unknown,ref Unknown, 
                    
ref Unknown,ref Unknown,ref Unknown, 
                    
ref Unknown );

                docBuiltInProps = oDoc.BuiltInDocumentProperties;
            
                Type typeDocBuiltInProps = docBuiltInProps.GetType();
            
            
                
//获取作者
                string index = "Author";
                
string propsValue;
                
                
object docAuthor = typeDocBuiltInProps.InvokeMember("Item"
                    BindingFlags.Default | 
                    BindingFlags.GetProperty, 
                    
null,docBuiltInProps, 
                    
new object[] {index} );
            
                Type typeDocAuthorProp = docAuthor.GetType();
                
                propsValue = typeDocAuthorProp.InvokeMember("Value"
                    BindingFlags.Default |
                    BindingFlags.GetProperty,
                    
null,docAuthor,
                    
new object[] {} ).ToString();
                
                MessageBox.Show( propsValue,"Author" );

                
//获取主题
                index = "Subject";
                propsValue = "The Subject";
                
                
object docSubjectProp = typeDocBuiltInProps.InvokeMember("Item"
                    BindingFlags.Default | 
                    BindingFlags.GetProperty, 
                    
null,docBuiltInProps, 
                    
new object[] {index} );
            
                Type typeDocSubjectProp = docSubjectProp.GetType();
                
                propsValue = typeDocSubjectProp.InvokeMember("Value"
                    BindingFlags.Default |BindingFlags.GetProperty,
                    
null,docSubjectProp,
                    
new object[] {} ).ToString();
                
                MessageBox.Show( propsValue,"Subject" );

            }

            
finally
            
{
                
//关闭word进程
                object save = false;
            
                oWord.Quit(ref save,ref Unknown,ref Unknown);
            
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oWord);    
            }
posted @ 2009-08-19 10:17  oraclejava  阅读(832)  评论(0)    收藏  举报