Excel 组件
excel 导入导出操作
项目中使用到的是 XLSX,具体文档可以参考XLSX 文档
 Import
 Usage
<template>
  <ImpExcel @success="loadDataSuccess">
    <a-button class="m-3">导入Excel</a-button>
  </ImpExcel>
</template>
<script lang="ts">
  import { defineComponent, ref } from 'vue';
  import { ImpExcel, ExcelData } from '/@/components/Excel';
  export default defineComponent({
    components: { ImpExcel },
    setup() {
      function loadDataSuccess(excelDataList: ExcelData[]) {
        tableListRef.value = [];
        console.log(excelDataList);
        for (const excelData of excelDataList) {
          const {
            header,
            results,
            meta: { sheetName },
          } = excelData;
          const columns: BasicColumn[] = [];
          for (const title of header) {
            columns.push({ title, dataIndex: title });
          }
          tableListRef.value.push({ title: sheetName, dataSource: results, columns });
        }
      }
      return {
        loadDataSuccess,
      };
    },
  });
</script>
 Events
| 事件 | 回调参数 | 说明 | 
|---|
| success | (res:ExcelData)=>void | 导入成功回调 | 
| error | ()=>void | 导出错误 | 
 ExcelData
| 属性 | 类型 | 默认值 | 说明 | 
|---|
| header: | string[]; |  | table 表头 | 
| results: | T[]; |  | table 数据 | 
| meta: | { sheetName: string }; |  | table title | 
 Export
具体详情可以参考完整版示例
import { jsonToSheetXlsx, aoaToSheetXlsx } from '/@/components/Excel';
 数组格式数据导出
import { aoaToSheetXlsx } from '/@/components/Excel';
aoaToSheetXlsx({
  data: [],
  header: [],
  filename: '二维数组方式导出excel.xlsx',
});
 自定义导出格式
import { jsonToSheetXlsx } from '/@/components/Excel';
jsonToSheetXlsx({
  data,
  filename,
  write2excelOpts: {
    
    bookType,
  },
});
 json 格式导出
import { jsonToSheetXlsx } from '/@/components/Excel';
jsonToSheetXlsx({
  data,
  filename: '使用key作为默认头部.xlsx',
});
jsonToSheetXlsx({
  data,
  header: {
    id: 'ID',
    name: '姓名',
    age: '年龄',
    no: '编号',
    address: '地址',
    beginTime: '开始时间',
    endTime: '结束时间',
  },
  filename: '自定义头部.xlsx',
  json2sheetOpts: {
    
    header: ['name', 'id'],
  },
});
 Function
| 方法 | 回调参数 | 返回值 | 说明 | 
|---|
| jsonToSheetXlsx | Function(JsonToSheet) |  | json 格式数据,导出到 excel | 
| aoaToSheetXlsx | Function(AoAToSheet) |  | 数组格式,导出到 excel | 
 JsonToSheet Type
| 属性 | 类型 | 默认值 | 说明 | 
|---|
| data | T[] |  | JSON 对象数组 | 
| header?: | T; |  | 表头未设置则取 JSON 对象的 key作为header | 
| filename?: | string | excel-list.xlsx | 导出的文件名 | 
| json2sheetOpts?: | JSON2SheetOpts |  | 调用 XLSX.utils.json_to_sheet的可选参数 | 
| write2excelOpts?: | WritingOptions | { bookType: 'xlsx' } | 调用 XLSX.writeFile的可选参数,具体参 XLSX 文档 | 
 AoAToSheet Type
| 属性 | 类型 | 默认值 | 说明 | 
|---|
| data | T[][]; |  | 二维数组 | 
| header?: | T; |  | 表头 ;未设置则没有表头 | 
| filename?: | string; | excel-list.xlsx | 导出的文件名 | 
| write2excelOpts?: | WritingOptions; | { bookType: 'xlsx' } | 调用 XLSX.writeFile的可选参数 |