千家信息网

Asp.Net在线预览Word文档问题怎么解决

发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,这篇文章主要讲解了"Asp.Net在线预览Word文档问题怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Asp.Net在线预览Word文档问题
千家信息网最后更新 2025年02月21日Asp.Net在线预览Word文档问题怎么解决

这篇文章主要讲解了"Asp.Net在线预览Word文档问题怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Asp.Net在线预览Word文档问题怎么解决"吧!

项目特点

Asp.Net不带Core.NET Framework 4.0,部署在Windows平台上。

解决方案

大致思路:先将Word文档转换Html,再预览Html

1、Word文档转Html

先引用OfficeDLL,在COM里面,注意:电脑需要安装Office哦。

又注意:请在DLL属性里面将嵌入互操作类型改为False

转换过程一个方法搞定:

using Microsoft.Office.Interop.Word;public static string WordToHtml(string path){        string root = AppDomain.CurrentDomain.BaseDirectory;        var htmlName = $"{Guid.NewGuid().ToString("N")}.html";        var htmlPath = root + $"Resource/Temporary/";        if (!Directory.Exists(htmlPath))        {                Directory.CreateDirectory(htmlPath);        }        ApplicationClass word = new ApplicationClass();        Type wordType = word.GetType();        Documents docs = word.Documents;        Type docsType = docs.GetType();        Document doc = (Document)docsType.InvokeMember("Open", BindingFlags.InvokeMethod, null, docs, new Object[] { (object)path, true, true });        Type docType = doc.GetType();        docType.InvokeMember("SaveAs", BindingFlags.InvokeMethod, null, doc, new object[] { (htmlPath + htmlName), WdSaveFormat.wdFormatFilteredHTML });        docType.InvokeMember("Close", BindingFlags.InvokeMethod, null, doc, null);        wordType.InvokeMember("Quit", BindingFlags.InvokeMethod, null, word, null);        return htmlName;}
2、预览

上一步WordHtml的方法已经准备就绪,我们再准备这样一个Word文档。

简单写一下逻辑:

是不是特别简单,我们再看看成品效果。

这种方案局限性比较大,部署平台必须安装Office,刚好客户能满足。

感谢各位的阅读,以上就是"Asp.Net在线预览Word文档问题怎么解决"的内容了,经过本文的学习后,相信大家对Asp.Net在线预览Word文档问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0