项目需要,要在app上实现word文档导出。

查过资料使用jquery.wordexport.js可以实现导出word,jquery.wordexport.js依赖于jquery和

FileSaver,要将它们三个依次导入项目中。

下载jquery-3.2.1.min.js,FileSaver.js,jquery.wordexport.js三个js文件

涉及到ionic3项目引入第三方js文件,先将三个js文件放入Demo\src\assets\js文件夹中,然后在Demo\www路径下的index.html中引入,放在cordova.js的下面

  <script src="assets/js/jquery-3.2.1.min.js"></script>
  <script src="assets/js/FileSaver.js"></script>
  <script src="assets/js/jquery.wordexport.js"></script>

在Demo\src\page路径新建文件夹services,在services文件夹中新建jquery.d.ts文件,内容为:

declare var $:any;

然后在使用的页面上增加///<reference path="../services/jquery.d.ts"/>

///<reference path="../services/jquery.d.ts"/>
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

以上是jquery的导入

jquery.wordexport.js的导入写在jQuery的下面

import '../../assets/js/jquery.wordexport.js';

 

导入成功之后就可以进行下一步:

新增div

  <div id="WordDIV">
    <h2 style="text-align: center; color: red;">
      word文档导出测试
    </h2>
  </div>

之后直接在ts文件中触发事件

$("#WordDIV").wordExport();

到这里在电脑上就可以实现word文档的导出了,然而很不幸的这个这个功能在app中是运行不了的!

 

 

又是一波查资料、想办法

索性上天是眷顾我的,在jquery.wordexport.js中发现它在

saveAs(blob, fileName + ".doc");

之前生成了一个

var blob = new Blob([fileContent], {
                type: "application/msword;charset=utf-8"
            });

而我在之前实现pdf的导出功能时也有这个东西


      this.pdfObj.getBuffer((buffer) => {
        var blob = new Blob([buffer], { type: 'application/pdf' });

        this.file.writeFile(this.file.externalDataDirectory, 'myletter.pdf', blob, { replace: true }).then(fileEntry => {
          // Open the PDf with the correct OS tools
          alert(fileEntry.nativeURL);
        })
      });

 接下来就是尝试了,jquery.wordexport.js中的saveAs(blob, fileName + ".doc");去掉,增加

return blob;

 ts中的触发事件改为


    let blob = $("#showDIV").wordExport();
    // Save the word to the data Directory of our App
    this.file.writeFile(this.file.externalDataDirectory, 'myletter.doc', blob, { replace: true }).then(fileEntry => {
      alert(fileEntry.nativeURL);
    })

 这一步直接去掉了FileSaver的使用,显然这个方法时没有问题的,成功导出了word文档。

 

jquery.wordexport.js参考了

https://www.cnblogs.com/kmonkeywyl/p/9896448.html

大家对于jquery.wordexport.js有疑问的话可以去看

 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐