如何读取msword文件以及图像、样式等整个文档



我想用c#在asp.net中读取msword(.doc/.docx)文件的全部内容,其中包含图像、样式和文本。

我曾经写过以下代码,它运行良好。

//   Microsoft.Office.Interop.Word.ApplicationClass wordApp = new
Microsoft.Office.Interop.Word.ApplicationClass();
string filePath1 = @"G:ABOUT.docx";
object file = filePath1;
object nullobj = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref file,
                 ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                 ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                                                                 ref nullobj);
Microsoft.Office.Interop.Word.Document doc1 = wordApp.ActiveDocument;
string m_Content = doc1.Content.Text;
txtbook.Text = m_Content;
doc.Close(ref nullobj, ref nullobj, ref nullobj);

但是它无法读取图像文件。

请帮助我将数据库中的全部内容保存为html格式,并以html格式检索。

注意:这可能不是问题的直接原因,但需要提及,而且时间太长,无法发表评论

您正在使用Office自动化从ASP.NET应用程序访问Word文档。这不是微软官方支持的:

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为在这种环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁。

所以,很明显,你的问题的解决方案是

  • 使用第三方库将docx文件转换为html文件,然后
  • 将html文件读取到数据库中

doc1.内容.文本

您不能使用MS Word文档内容文本,因为它不是HTML格式。(需要在ASP.NET网页上显示图像和样式)

选项1

您可以使用Word Interop将文档转换为HTML,并以文字形式获取HTML标记(此处无法使用文本框)

选项2

使用类似谷歌文档查看器的工具来查看您的Word文档。也有像Aspose这样的付费查看器,您可以使用它在ASP.NET网站上查看Word文档http://www.aspose.com/.net/word-component.aspx

在任何一种情况下,您都需要在谷歌上搜索并获得有关方法的更多信息,并为您的ASP.NET网站实现

最新更新