日期:2011-08-18  浏览次数:20507 次

首先要添加一个引用:COM ----> Microsoft Word 9.0 Object Library
要用到这个名称空间:System.Reflection

void opWord()
{

Word.Application oWord;
Word._Document oDoc;
object docBuiltInProps;
object oMissing = Missing.Value;
object Source = Server.MapPath("liu.doc");
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 );

//下面代码可以获得word文本
Response.Write(oDoc.Words.Count.ToString());
Response.Write("


");
Response.Write(oDoc.Words.Application.Documents.ToString());
object a=0;
object b=(object)oDoc.Words.Count;
Word.Range oooo=oDoc.Range(ref a,ref b);
Response.Write(oooo.Text);
Response.Write("
");
//----------------------------


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();

Response.Write(propsValue);

//获取主题
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();

Response.Write(propsValue);
}
finally
{
//关闭word进程
object save = false;

oWord.Quit(ref save,ref Unknown,ref Unknown);

System.Runtime.InteropServices.Marshal.ReleaseComObject(oWord);
}
}