IT职业教育

华中地区北大青鸟校区IT集训营

027-87807717

北大青鸟首页 > 热门IT技术教程 > .Net技术教程 > > .net教程:.net下将富文本编辑器文本原样读入word文件

.net教程:.net下将富文本编辑器文本原样读入word文件

时间:2014-04-30 10:06 来源:北大青鸟武汉宏鹏鲁广校区
导读:为解决.net下将富文本编辑器文本原样读入word文件的问题,选需要了解,在.net环境下读取数据库中的内容动态生成word至少有2种方式。

 

 

 

  为解决.net下将富文本编辑器文本原样读入word文件的问题,选需要了解,在.net环境下读取数据库中的内容动态生成word至少有2种方式。

  【方式一】一种方式是在项目中添加引用,例如在“添加引用”对话框中的COM子tab中添加Microsoft Office 11.0 Object Library,然后再在代码中添加office相关的命名空间,使用word相关的对象读取模版文件并将文本写到模版提前设置好了标签的位置。这种方式是初出现的方式,缺点在于:1.在服务器上需要按照office,否则在服务器环境想会因缺少库文件无法生成;2.需保持开发环境和服务器环境下office的版本一致,而服务器的环境相对稳定,软件更新频度不高,这一点对于那些喜欢追新版本的开发者来说,可能会造成很多不必要的麻烦。

  【方式二】动态生成word文件的第二种方式是使用Open XML SDK,这种方法无需服务器安装office,是一种比较neat的方法,缺点是这种方式可能更适合新开发生成word的功能,对于方式一遗留代码的维护好还是用方式一的方法。

  用上面的方式将内容读入word和Excel等模版并不难。用富文本编辑器(近比较fun KindEditor)进行文本编辑,实际就是给文本加上html控制样式的tag,例如<strong></string>等等,这时候将内容读入word并根据html tag的样式在word中显示同样的样式,需要一定技巧,弄不好容易直接显示html tag的文本。用方式二将富文本编辑器产生的内容生成到word中并显示对应的样式文章比较多,只要知道Open XML SDK这种开发方式就能搜到,因为操作的中间数据是统一的Office Open XML格式的,方式一的文章几乎没有,好不容易找到了一个英文的,思路也确实很简单,就是先把富文本编辑器产生的要读入word的文本保存到一个网页文件(.html文件中),然后在word中插入该文件,但给出的代码不太可用,仍然进行了一下午的摸索才得到行之有效的方式。下面是我的完整代码,每个参数都是设好的,可直接使用:

  <span style="font-size: 16px;">StreamWriter sw = new StreamWriter(System.Web.HttpContext.Current.Server.MapPath("~/temp.html"), false, Encoding.Default);

  sw.Write("<html><head></head><body>");//没有完整的html文件标记不行,没有的话会在word中显示html tag而不是样式,预先写入模版中也行

  sw.Write(dr["summary"].ToString());

  sw.Write("</body></html>");

  sw.Close();

  object oFalse = false;

  object oTrue = true;

  object oMissing = System.Reflection.Missing.Value;

  doc.Bookmarks.get_Item(ref bm[202]).Range.InsertFile(System.Web.HttpContext.Current.Server.MapPath("~/temp.html"), ref oMissing, ref oFalse, ref oTrue, ref oFalse);

  武汉北大青鸟鲁广校区,专业老师会帮你找到适合自己学习的课程和就业方向,详细了解.net教程中的小问题,现在就与专业老师在线老师沟通或拨打电话:027-87807717,或QQ咨询:027-87807717.

告诉我们,你现在想了解什么?

精彩专题——96%的同学看到这里都会点击下面的专题

Copyright © 2006-2016 武汉北大青鸟鲁广校区(武汉宏鹏教育咨询有限公司) 版权所有鄂ICP备11006561号 CacheTime:2017-10-12 09:18:36 CacheID:3222

鄂公网安备 42011102000412号