Asp.Net在线预览Word文档问题怎么解决
短信预约 -IT技能 免费直播动态提醒
这篇文章主要讲解了“Asp.Net在线预览Word文档问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Asp.Net在线预览Word文档问题怎么解决”吧!
项目特点
Asp.Net
不带Core
,.NET Framework 4.0
,部署在Windows
平台上。
解决方案
大致思路:先将Word
文档转换Html
,再预览Html
。
1、Word
文档转Html
先引用Office
的DLL
,在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、预览
上一步Word
转Html
的方法已经准备就绪,我们再准备这样一个Word
文档。
简单写一下逻辑:
是不是特别简单,我们再看看成品效果。
这种方案局限性比较大,部署平台必须安装Office
,刚好客户能满足。
感谢各位的阅读,以上就是“Asp.Net在线预览Word文档问题怎么解决”的内容了,经过本文的学习后,相信大家对Asp.Net在线预览Word文档问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341