Extjs htmleditor中内容导出成word (一)
问题:
近来公司项目isap使用到extjs的htmleditor来在线编辑内容,同时用户要求编辑完成的内容能够导出成为Word文档。
通过htmleditor看成她的内容源代码,很多<w:document>等相关的xml标签和html相关的标签,因此想能不能直接把她的内容源代码保存成文件,然后用Word打开呢?
直接拷贝出来,在记事本里保存,然后改后缀名为doc打开,报错:"无法打开文档**.doc, 因为内容有错误。" 发现格式有些问题。
查找良久终于觅得神器,即在htmleditor的内容源代码直接和后面加上<html></html>标签及相关声明。如下:
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"> <!-- 富文本代码区 --> </html>
把内容保存成后缀名为doc或docx,打开即可。
ok,知道可以把这个内容直接导出成Word之后,大问题已经解决。下面要做的就是怎样导出的问题:
1、通过Java后台生成内容,通过设定header下载文件。
2、通过前段Javascript直接导出已经显示的内容。
第一种方案
通过java代码组装生成htmleditor相关的source,然后把上面解决方案中的html 头和尾加上,然后通过下载功能让用户下载word。
优点: 通用,不需要其他文件,而且与浏览器无关。
缺点: 需要再次访问服务器,降低了效率。
第二种方案
使用Javascript+Actionscript(SWF)在客户端导出。
优点: 效率高,不需要再访问服务器。
缺点: 依赖于flash,不过还好,flash可以跨浏览器兼容。
下一篇主要介绍第二种方案。