获取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);
}

最近没作项目的开发,没什么好东西可以拿出手
这个就献丑了

Published At
Categories with Web编程
Tagged with
comments powered by Disqus