• 关于 vue 使用 Handsontable 表格数据导出


    官方文档:

    const container = document.getElementById('example');
    const hot = new Handsontable(container, {
      data: getData()
    });
    
    // access to exportFile plugin instance
    const exportPlugin = hot.getPlugin('exportFile');
    
    // export as a string
    exportPlugin.exportAsString('csv');
    
    // export as a blob object
    exportPlugin.exportAsBlob('csv');
    
    // export to downloadable file (named: MyFile.csv)
    exportPlugin.downloadFile('csv', {filename: 'MyFile'});
    
    // export as a string (with specified data range):
    exportPlugin.exportAsString('csv', {
      exportHiddenRows: true,     // default false
      exportHiddenColumns: true,  // default false
      columnHeaders: true,        // default false
      rowHeaders: true,           // default false
      columnDelimiter: ';',       // default ','
      range: [1, 1, 6, 6]         // [startRow, endRow, startColumn, endColumn]
    });
    

      自己改造了一下:

     
    // 标签
    <hot-table
          :data="datas" licenseKey="non-commercial-and-evaluation"
          :width="width"
          :height="height"
          :rowHeights="rowHeights"
          :colWidths="colWidths"
          :manualRowMove="manualRowMove"
          :className="className"
          :colHeaders="colHeaders"
          :rowHeaders="rowHeaders"
          :readOnly="readOnly"
          :fixedRowsBottom="fixedRowsBottom"
          :mergeCells="tableMerges"
          ref="container"
          :observeChanges="observeChanges"
        ></hot-table>
    // 表格导出 methods 方法
     exportHandsontable () {
          console.log('导出')
          const container = this.$refs.container.hotInstance
          const hot = Object.assign(container, {
            data: this.datas, // 导出数据
            colHeaders: true,
            rowHeaders: true
          })
          console.log('s', hot)
          // access to exportFile plugin instance
          const exportPlugin = hot.getPlugin('exportFile')
          console.log('exportPlugin', exportPlugin)
          exportPlugin.downloadFile('csv', {
            bom: 'UTF-8', // 允许您使用BOM签名导出数据。
            columnDelimiter: ',', // 允许您定义列分隔符。
            columnHeaders: false, // 允许使用列标题导出数据。
            exportHiddenColumns: true, // 允许您从隐藏列导出数据。
            exportHiddenRows: true, // 允许您从隐藏行导出数据
            fileExtension: 'csv', // 允许您定义文件扩展名。
            filename: '周排班基础信息[YYYY]-[MM]-[DD]', // 允许您定义文件名。
            mimeType: 'text/csv', // 允许您定义MIME类型。
            rowDelimiter: '
    ', // 允许您定义行分隔符。
            rowHeaders: true // 允许您使用行标题导出数据。
          })
        }
      },
    

      页面调用:

    <Button type="info"  @click="exportData">导出</Button>
    
    import MonthDuty from '_c/onduty' // 引入组件
    
    // 导出表格  methods方法里
        exportData () {
          this.$refs['MonthDuty'].exportHandsontable()
        },
    

      

  • 相关阅读:
    10个最常见的JS错误
    有哪些新手程序员不知道的小技巧?
    有哪些新手程序员不知道的小技巧?
    有哪些新手程序员不知道的小技巧?
    有哪些新手程序员不知道的小技巧?
    有哪些新手程序员不知道的小技巧?
    有哪些新手程序员不知道的小技巧?
    EF 传递的主键值的数量必须与实体上定义的主键值的数量匹配 原因
    ACM2054_A=B
    五一游记
  • 原文地址:https://www.cnblogs.com/malng/p/10755353.html
Copyright © 2020-2023  润新知