概述

SpreadJS 纯前端表格控件 V11.2(SP2)版本已经全面支持了 Vue 拓展,下面我们看下如何配合 VUE CLI,只需 3 分钟快速构建一个 SpreadJS Vue 工程。

Vue

1. 安装vue-cli(耗时30 S)

通过命令:npm install -g \@vue/cli 安装(https://cli.vuejs.org/

2. 创建 vue-spreadjs 工程(耗时 1 Min)

请根据项目需求配置工程选项:

3. 通过npm install 或者在package.json中添加引用的方式安装spread.sheets(耗时20S)

    "@grapecity/spread-excelio": "^11.2.3",
    "@grapecity/spread-sheets": "^11.2.3",
    "@grapecity/spread-sheets-print": "^11.2.3",
    "@grapecity/spread-sheets-resources-zh": "^11.2.3",
    "@grapecity/spread-sheets-vue": "^11.2.3",

4. 修改 router/index.js 为 spreadJS 页面添加 router(耗时 30 S)

routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/spreadjs',
      name: 'spreadJS',
      component: SpreadJS
    }
  ]

5. 新建 SpreadJS Component(耗时 30 S)

请在 components 下添加 SpreadJS.vue 文件

template 内容:

<template>
<div>
    <h1>Spread.Sheets</h1>
    <div>
        <input type='file' @change="processFile($event)"/>
        <button @click="importExcel">导入</button>
        <button @click="exportExcel">导出</button>
        <button @click="printWorkbook">打印</button>
    </div>
    <div style="text-align: left">
        <gc-spread-sheets
            hostClass='spread-host'
            @workbookInitialized = 'workbookInitialized($event)'>
            <gc-worksheet>
            </gc-worksheet>
        </gc-spread-sheets>
    </div>
</div>
</template>

Style内容:

<style>
.spread-host {
  width: 100%;
  height: 400px;
  border: 1px solid black;
}
</style>

Script内容:

<script>
/* eslint-disable */

import "@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css";
import GC from "@grapecity/spread-sheets";
import "@grapecity/spread-sheets-vue";
import "@grapecity/spread-sheets-resources-zh";
import ExcelIO from "@grapecity/spread-excelio";
import FaverSaver from "file-saver";
import "@grapecity/spread-sheets-print";

GC.Spread.Common.CultureManager.culture("zh-cn"); 
GC.Spread.Sheets.LicenseKey = ExcelIO.LicenseKey = "your key"
export default {
  methods: {
    processFile (event) {
      this.excelFile = event.target.files[0];
    },
    importExcel () {
      var excelIO = new ExcelIO.IO();
      console.log(excelIO);
      var self = this;
      excelIO.open(this.excelFile, function(json) {
        self.spread.fromJSON(json);
        console.log(json);
      });
    },
    exportExcel () {
      var excelIO = new ExcelIO.IO();
      var json = this.spread.toJSON();
      excelIO.save(
        json,
        function(blob) {
          FaverSaver.saveAs(blob, "export.xlsx");
        },
        function(e) {
          console.log(e);
        }
      );
    },
    printWorkbook (){
      this.spread.print();
    },
    workbookInitialized(spread) {
      this.spread = spread;
      spread.refresh();
    }
  }
}
</script>

workbookInitialized 是 spread 初始化完成后的回调事件,我们可以在事件中得到初始化好的 workbook 对象。

部署授权需要同时给 Sheets 和 ExcelIO 同时添加,部署授权可以在全局 config 中配置。

6. 运行项目(耗时 10 S)

创建 npm install 依赖后,即可通过npm start启动项目

浏览器访问 http://localhost:8081/#/spreadjs 查看效果。

只需 3 分钟,一个 SpreadJS 的 Vue 项目就创建完成了,当然纯前端表格控件 SpreadJS 的强大不仅于此,去实际试用感受一下吧

扩展阅读

这篇文章,讲述的是《3分钟创建 SpreadJS 的 React 项目》,需要的同学请深入了解。