美文网首页
VUE框架下搭建在线Excel应用

VUE框架下搭建在线Excel应用

作者: 小FFF | 来源:发表于2019-10-28 10:06 被阅读0次

本项目实现功能:VUE框架中 嵌入表格控件SpreadJS,实现导入Excel、导出Excel、导出PDF、打印表格等

初始化VUE项目

参考文章:3分钟创建 SpreadJS 的 Vue 项目
项目运行效果:
本地的一个Excel文件:

image.png
导入Excel在项目中:
image.png

文章中的SpreadJS 版本是V11 的,现在最新版本已经是V13版本,我的例子中应用了SpreadJSV 12.2.5的版本,package.json 中添加的引用如下:

"dependencies": {
    "@grapecity/spread-excelio": "12.2.5",
    "@grapecity/spread-sheets": "12.2.5",
    "@grapecity/spread-sheets-pdf": "^12.2.5",
    "@grapecity/spread-sheets-print": "12.2.5",
    "@grapecity/spread-sheets-resources-zh": "12.2.5",
    "@grapecity/spread-sheets-vue": "12.2.5",
    "@grapecity/spread-sheets-charts": "12.2.5" ,
    "file-saver": "2.0.2",
    "jquery": "2.2.1",
    "vue": "^2.5.2",
    "vue-router": "^3.0.1"
  },

执行npm install 命令安装SpreadJS

导出PDF功能注意事项

  • 安装相同版本的 pdf的包: "@grapecity/spread-sheets-pdf"
  • 在需要打印的页面引入该包: import "@grapecity/spread-sheets-pdf";
  • 引入该包需要注意引入顺序,先引入 @grapecity/spread-sheets和 grapecity/spread-sheets-print
  • 需引入第三方插件file-saver : import FaverSaver from 'file-saver'
  • 如下几行代码可实现导出PDF功能
   savePdf(){
         let self = this;
        let jsonString = JSON.stringify(self.spread.toJSON());
        let printSpread = new GC.Spread.Sheets.Workbook();
        printSpread.fromJSON(JSON.parse(jsonString));
    
        printSpread.savePDF(function(blob) {    
                // window.open(URL.createObjectURL(blob))   
                FaverSaver.saveAs(blob,  'Hello.pdf')
                }, function(error) {
                console.log(error);
                }, {
                title: 'Print',
            });  
    }

导入导出Excel

  • 安装相关的包: "@grapecity/spread-excelio"、 "file-saver"
  • 在页面中引入: import ExcelIO from '@grapecity/spread-excelio'、import FaverSaver from 'file-saver'
  • 如下代码可实现导入导出Excel:
exportXlsx () {
      let ex = new ExcelIO.IO()
      let json = this.spread.toJSON()
      ex.save(json, function (blob) {
        FaverSaver.saveAs(blob, 'export.xlsx')
      }, function (e) {
        console.log(e)
      })
    },
    importXlsx(){
       let self = this;
        var excelIO = new ExcelIO.IO();
        console.log(excelIO);
        const excelFile = document.getElementById("fileDemo").files[0];
      excelIO.open(excelFile, function (json) {
          let workbookObj = json;
          self.spread.fromJSON(workbookObj);
        }, function (e) {
            alert(e.errorMessage);
        });
    }

代码下载地址点这里

相关文章

网友评论

      本文标题:VUE框架下搭建在线Excel应用

      本文链接:https://www.haomeiwen.com/subject/eqrfiqtx.html