0.1.17 • Published 3 years ago

@uublue/vue-excel-viewer v0.1.17

Weekly downloads
-
License
-
Repository
github
Last release
3 years ago

Install

npm i @uublue/vue-excel-viewer

Props

nametypedefaultdescription
heightNumber500the height of excel viewer
firstRowIndexNumber1第一行数据的行序号
minColCountsNumber-列的最小显示个数

Example

基本用法

import VueExcelViewer from '@uublue/vue-excel-viewer'
import '@uublue/vue-excel-viewer/lib/vue-excel-viewer.css'
Vue.use(VueExcelViewer)
<template>
  <div id="app">
    <input @change="chooseFile" type="file"/>

    <excel-viewer
      ref="excelViewer"
      :height="300"
      :first-row-num="firstRowNum"
      :min-col-counts="5"
      @on-reach-top="reachTop"
      @on-reach-bottom="reachBottom"
      @on-row-select="onRowSelect"
      @on-col-select="onColSelect"
      @on-cell-select="onCellSelect"
      @on-before-open="beforeOpen"
      @on-after-open="afterOpen"
    />
  </div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
      firstRowNum: 2
    };
  },
  methods: {
    chooseFile(e){
      console.info("excel file select", e);
      //open excel file
      this.$refs.excelViewer.openExcelFile(e.target.files[0]);
    },
    beforeOpen() {//文件打开前的事件 on before open
      console.info("excel before open");
      
    },
    afterOpen() {//文件打开后的事件 on after open
      console.info("excel after open");
      this.$refs.excelViewer.setRowBackgroundColor(5,'red');
    },
    onRowSelect(rowNum, selectRowValues) {//行选择的事件 on row select
      console.info("row select", rowNum, selectRowValues);
      //设置行的背景颜色 set row background-color
      this.$refs.excelViewer.setSelectedBackgroundColor('red');
    },
    onColSelect(colNum) {//列选择事件 on column select
      console.info("col select", colNum);
    },
    onCellSelect(rowNum, colNum, value) {//单元格选择的事件 on cell select
      //设置背景颜色 set backgroundColor 
      this.$refs.excelViewer.setCellBackgroundColor(rowNum, colNum, 'red');
      //冻结窗格 freeze at cell
      this.$refs.excelViewer.freezeCellAt(rowNum, colNum);
      if (value) {
        console.info("cell select", rowNum, colNum, value);
      } else {
        console.info("cell select, value empty", rowNum, colNum);
      }
    },
    reachTop() {//滚动到顶部的事件 on reach top
      console.info("touch top");
    },
    reachBottom() {//滚动到底部的事件 on reach bottom
      console.info("touch bottom");
    }
  },
};
</script>

从文件流获取excel

        axios
          .get(`/file`, {
            responseType: "blob",
          })
          .then((res) => {
            let blob = res.data;
            let reader = new FileReader();
            var self = this
            reader.onload = (e) => {
              self.$refs.excelView.openExcelData(e.target.result)
            };
            reader.readAsBinaryString(blob);
          })
          .catch((error) => {
            console.error("error", error);
          });
0.1.17

3 years ago

0.1.15

3 years ago

0.1.16

3 years ago

0.1.13

3 years ago

0.1.12

3 years ago

0.1.10

3 years ago

0.1.11

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago