日期:2014-05-17  浏览次数:20577 次

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可以跨浏览器兼容。


下一篇主要介绍第二种方案。



参考:http://blog.csdn.net/xiexl/article/details/6652230