ASP.NET(C#)读取word问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 21:47:39
这几天想在asp.net页面中,显示word文档的内容,试了几种方法,都得不到满意的结果,用streamreader和filestream来读的时候,不管用哪种编码形式,页面都存在乱码。
后来有人说用com组件来读,我也试了,的确不存在乱码了,但是word中的格式全部没有了,页面中密密麻麻的都是文字,一点空隙都没有。请问该怎样读取word文档,并且让它的格式保留下来?
下面是我用com组件读取时写的一个函数来实现的代码,麻烦高手看看要怎样修改才能保留它的格式,或者如果有更好的方法来读取,麻烦你们教教我,谢谢!
public string Doc2Text(string docFileName)
{

Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
object fileobj = docFileName;
object nullobj = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref fileobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj
);

string outText = doc.Content.

引用Word的Com组件Microsoft Word 11.0 Object Library,我的office2003的版本是8.3,默认安装的Office是没有这个组件的。用office盘,添加删除组件,选自定义,在Microsoft Office Word下面有.NET可编程性支持。安装。

引用到项目中Web.config多了这行

<compilation debug="false">
<assemblies>
<add assembly="Microsoft.Office.Interop.Word, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"/></assemblies>

程序代码:
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.ApplicationClass();
//Word.ApplicationClass word = new Word.ApplicationClass();
Type wordType = word.GetType();
Microsoft.Office.Interop.Word.Documents docs = word.Documents;

// 打开文件
Type docsType = docs.GetType();
object fileName = "e:\\cc.doc";
Microsoft.Office.Interop.Word.Document doc = (Microsoft.Office.Interop.Word.Document)docsType.InvokeMember("Open",
System.Reflection.BindingFlags.InvokeMeth