前言

最近接到一个需求,实现上传一个word文档,然后将该word转换成html丢给服务端存上。进行技术调研后发现有三种方法可以实现这个功能:ActiveXObject、docx2html、mammoth。

IE的 ActiveXObject

var oWordApp=new ActiveXObject("Word.Application");

var oDocument=oWordApp.Documents.Open("C://test.doc");

oDocument.SaveAs("C://test.html", 10)

缺点:只有IE才有这个东西

docx2html

Git地址:https://github.com/lalalic/docx2html

使用方法:

// html 部分

// js部分

handleFileSelect(event){

require("docx2html")(event.target.files[0]).then(function(converted){

console.log(converted)

document.querySelector('textarea').value=converted.toString()

})

}

缺点:只能将简单的docx文件转化成html,复杂点的就报错了,如图:

mammoth.js

Git地址:https://github.com/mwilliamson/mammoth.js

中文文档地址:https://www.helplib.com/GitHub/article_106969

使用方法:

//html:部分

Messages

//js:部分

handleFileSelect(event) {

this.readFileInputEventAsArrayBuffer(event, (arrayBuffer) => {

mammoth.convertToHtml({arrayBuffer: arrayBuffer})

.then(this.displayResult)

.done();

});

},

displayResult(result) {

console.log(result)

document.getElementById("output").innerHTML = result.value;

var messageHtml = result.messages.map((message) => {

return '

' + this.escapeHtml(message.message) + "";

}).join("");

document.getElementById("messages").innerHTML = "" + messageHtml + "";

},

readFileInputEventAsArrayBuffer(event, callback) {

var file = event.target.files[0];

var reader = new FileReader();

reader.onload = function(loadEvent) {

var arrayBuffer = loadEvent.target.result;

callback(arrayBuffer);

};

reader.readAsArrayBuffer(file);

},

escapeHtml(value) {

return value

.replace(/&/g, '&')

.replace(/"/g, '"')

.replace(//g, '>');

},

缺点:只支持docx的word文档,并且转换后的标题没有居中,如图:

js把html转换成word,js实现word转换为html相关推荐

  1. js中将字符串转换成json的三种方式

    ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法. 1,eval方式解析,恐 ...

  2. js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

    js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳 热心网友  2018-11-18 js字符串转化时间戳可以使用自带函数 Date(要转化的时间字符串)先转化为Date类型,之后再将 ...

  3. js将阿拉伯数字转换成中文的大写数字

    js将阿拉伯数字转换成中文的大写数字 export const numberToChinese = (num) => {var AA = new Array("零", &qu ...

  4. js 将日期转换成时间戳

    接上一篇文章,用到了对时间的排序,来看下怎么把日期转换成时间戳吧! 一.日期转换成时间戳 js字符串转化成时间戳可以使用自带函数Date(要转化的时间字符串)先转化为Date类型,之后再将Date类型 ...

  5. js将数字转换成万、亿、万亿

    // js将数字转换成万.亿.万亿 export const numberFormat = (value)=> {var param = {};var k = 10000,sizes = ['' ...

  6. 用原生js把数字转换成货币人民币表示带逗号表示方法

    用原生js把数字转换成货币人民币表示带逗号表示方法 function rmb(str){let strArr = String( parseFloat(str).toFixed(2) ).split( ...

  7. js将秒转换成几天几小时几分几秒,每秒刷新

    //js将秒转换成几天几小时几分几秒function getDuration(second) {var days = Math.floor(second / 86400);var hours = Ma ...

  8. 如何用js将日期转换成时间戳

    一.日期转换成时间戳 js字符串转化成时间戳可以使用自带函数Date(要转化的时间字符串)先转化为Date类型,之后再将Date类型转化为时间戳类型,其中时间字符串有要求,形式必须是yyyy-MM-d ...

  9. 使用JS将GPRMC转换成WGS84/GCJ02

    使用JS将GPRMC转换成WGS84/GCJ02 背景 Background 代码 Code GPRMC 转换成WGS84 WGS84转GCJ02 背景 Background 在物联网相关的 应用中, ...

  10. pdf转换成可编辑的word转换器

    头条号:近期有不少网友向我咨询有关PDF转换成可编辑的Word文档的软件,小Q认为网上虽然有很多类似的PDF转换成Word转换器,但是从性能以及转换效果来看,迅捷PDF转换成Word转换器免费版v6. ...

最新文章

  1. python opencv 中bmp转raw格式图片并展示
  2. linux 下/proc/cpuinfo三级缓存,linux /proc/cpuinfo文件分析
  3. Telltale:看Netflix如何简化应用程序监控体系
  4. canvas笔记-使用canvas画矩形及各样式(透明)
  5. mysql brighthouse_mysql的三方Infobright数据仓库BRIGHTHOUSE引擎
  6. Jenkins+Github(Robotframework代码)
  7. 汉字书写解码_汉字密码 | 500个字根即可解码10万个汉字,《说文解字》的神功...
  8. Android开发——小技巧(二)修改APP图标和名字
  9. 排序算法——梳排序 Comb sort
  10. 基于S变换的电压暂降检测研究及仿真设计
  11. 字符串(String)
  12. 良好的编程习惯有哪些?
  13. WiFi-ESP8266入门http(3-4)网页一键配网(1若为普通wifi直连 2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信...
  14. JUC-07-CAS
  15. Octotree Chrome安装与使用方法
  16. label标签中的for属性
  17. 为什么说“ CPS联盟营销 ” 是性价比最高的推广方式?
  18. 正大国际期货主账户:什么是外盘
  19. 【IP基本原理-ARP原理】
  20. fastapi python_fastapi安装及访问页面

热门文章

  1. 剑指offer——stack与queue的互相实现
  2. jQuery已经落幕了~~
  3. [I T]2012伦敦奥运会10大最酷高科技
  4. 数据源的定义以及配置
  5. 利用MySQL的Binlog实现数据同步与订阅(上):基础篇
  6. 实体完整性、参照完整性、
  7. 最小-最大计划(Min-Max Planning)概览
  8. 海康iv4200支持多少_体验固态移动硬盘怎么选?1TB 才 900 不到的海康威视 T100F 怎么样?...
  9. IM1281B单相交流计量模块使用讲解
  10. 赛美特完成超5亿融资:估值超60亿 经纬创投领投,天善资本再加码