在开发过程中,尤其是cms类似的框架中内容编辑的问题毫无疑问是一个绕不过去的问题。
内容编辑我们可以选择ckeditor,ueditor,keditor等等的在线编辑的插件。
但是最终,将生成的html转换成word保存下载的时候,需要安装office,使用microsoft.office.interop.word程序集,有的甚至,无法运行的时候提供了一堆修改注册表的一系列解决方案。
但是最心累的是,当你到处找完反复尝试以后,最后导出下载的最终文档可能还会有各种各样的样式不对,图片没有输出等等的问题。
在这种很无奈的情况下,去stackoverflow上逛了逛,最终发现了一位同行提供的解决方案。
思路是使用一个叫做Html2OpenXml类库,这个类库把简单的或者复杂的html转换成OpenXml的文档。依赖项是OpenXml的SDK。
在百度百科中应该会发现OpenXml是一个标准。具体解释如下:
OpenXML标准的简单介绍:EcmaOfficeOpenXML(“OpenXML”)是针对字处理文档、演示文稿和电子表格的国际化开放标准,可免费供多个应用程序在多个平台上实现。MicrosoftOffice(、、XP、)、OpenOfficeNovellEdition、开源项目Gnumeric、Neo-Office2.1和PalmOS(Dataviz)已经支持OpenXML。Corel已经宣布在WordPerfect中提供OpenXML支持,全球的开发人员正在使用OpenXML构建解决方案。
相对来说,这种方式也是比较权威的一种方式,使用dll可以直接在visualstudio中的nuget中下载最新版本
使用命令:install-packageDocumentFormat.OpenXml
其中调用的demo如下:
代码内容不做详细赘述,完整的代码在方帮信