react-antd表格导出为Excel

安装插件js-export-excel

npm install js-export-excel

or

yarn add js-export-excel

在需要的地方引入该模块

import ExportJsonExcel from 'js-export-excel';//excel表格导出

如果碰到引入报错

 再src 根目录下加入一个 .d.ts 的文件 声明一下  是因为ts 找不到这个模块

//根目录 xxx.d.ts 文件中加上 如果没有就创建,文件为 xxx.d.ts
declare module 'js-export-excel' // js 转 ts模块引入

使用

<Button type="primary" onClick={this.downloadExcel} style={{ margin: "10px 10px" }}>班级配置导出</Button>

核心代码  

download = () => {
        let data=[
  {
    name: '1',
    password: 'John Brown',
    department: 98,
    idcard: 60,
    bankcard: 70,
  },
  {
    name: '1',
    password: 'John Brown',
    department: 98,
    idcard: 60,
    bankcard: 70,
  },
  {
    name: '1',
    password: 'John Brown',
    department: 98,
    idcard: 60,
    bankcard: 70,
  },
  {
    name: '1',
    password: 'John Brown',
    department: 98,
    idcard: 60,
    bankcard: 70,
  },
];;
        let option={};
        let dataTable=[];
        option.fileName = '报销人员';  //excel文件名称

        data.map(v=>{
            dataTable.push({
                '姓名': v.name,
                '密码': v.password,
                '部门': v.department,
                '身份证': v.idcard,
                '社保卡': v.sscard,
                '银行卡': v.bankcard,
            })
        });
        option.datas=[
            {
                sheetData:dataTable,
                sheetName:'sheet',
                sheetFilter: ["姓名", "密码", "部门", "身份证", "社保卡", "银行卡"],
                sheetHeader: ["姓名", "密码", "部门", "身份证", "社保卡", "银行卡"],
            }
        ];
        let toExcel = new ExportJsonExcel(option);
        toExcel.saveExcel()
    };
    

data是表格的数据根据情况自己拿   上述只是示例的数据

 参数的说明

// 直接导出文件
const ExportJsonExcel = require("js-export-excel");

var option = {};

option.fileName = "excel";

option.datas = [
  {
    sheetData: [
      { one: "一行一列", two: "一行二列" },
      { one: "二行一列", two: "二行二列" },
    ],
    sheetName: "sheet",
    sheetFilter: ["two", "one"],
    sheetHeader: ["第一列", "第二列"],
    columnWidths: [20, 20],
  },
  {
    sheetData: [
      { one: "一行一列", two: "一行二列" },
      { one: "二行一列", two: "二行二列" },
    ],
  },
];

var toExcel = new ExportJsonExcel(option); //new
toExcel.saveExcel(); //保存
// 导出Blob,支持压缩等其他操作
const ExportJsonExcel = require("js-export-excel");
const JSZip = require("jszip");

var option = {};

option.fileName = "excel";

option.saveAsBlob = true;

option.datas = [
  {
    sheetData: [
      { one: "一行一列", two: "一行二列" },
      { one: "二行一列", two: "二行二列" },
    ],
    sheetName: "sheet",
    sheetFilter: ["two", "one"],
    sheetHeader: ["第一列", "第二列"],
    columnWidths: [20, 20],
  },
  {
    sheetData: [
      { one: "一行一列", two: "一行二列" },
      { one: "二行一列", two: "二行二列" },
    ],
  },
];

var toExcel = new ExportJsonExcel(option); //new

let file = toExcel.saveExcel();

// 压缩文件
var zip = new JSZip();

// 多个excel 依次加入(fileName不能相同)
zip.file(file.name, file);

zip.generateAsync({ type: "blob" }).then(function (content) {
  // see FileSaver.js
  saveAs(content, "example.zip"); // 下载文件
});

option

  • fileName 下载文件名(默认:download)

  • saveAsBlob 导出文件流(默认: false)

  • datas 数据

/*多个sheet*/
/*每个sheet为一个object */
[{
sheetData:[], // 数据
sheetName:'', // sheet名字
sheetFilter:[], //列过滤
sheetHeader:[] // 第一行
columnWidths: [] //列宽 需与列顺序对应
}]

sheet option

  • sheetName sheet 名字(可有可无)(默认 sheet1)

  • sheetHeader 标题(excel 第一行数据)

sheetHeader: ["第一列", "第二列"];

columnWidths 列宽 非必须

// number 屏幕宽度为100 20即为 1/5屏幕大小
columnWidths = [20, ""];

sheetData 数据源(必须)

支持超链接解析,格式为 “hyperlink:site url”。eg: hyperlink:https://www.baidu.com

<!--两种形式-->
<!--第一种 object-->
[{one:'一行一列',two:'一行二列'},{one:'二行一列',two:'二行二列'}]
<!--第二种 arrary-->
[['一行一列','一行二列'],['二行一列','二行二列']]

sheetFilter 列过滤(只有在 data 为 object 下起作用)(可有可无)

sheetFilter = ["two", "one"];

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
react-antd-treetable是一个基于React和Ant Design框架开发的树形表格组件。该组件提供了一个功能强大且易用的界面,用于展示具有树形结构的数据。 react-antd-treetable组件主要特点如下: 1. 树形结构:组件支持展示具有树形结构的数据,每个节点可以包含子节点,形成层叠的树状布局。 2. 数据排序:可通过点击表头进行排序操作,对树形表格中的数据进行升序或降序排序。 3. 行选择:可以通过点击表格的行来选择或取消选择特定的行数据。同时,也支持通过选择父节点实现对整个子节点的选中或取消选中。 4. 编辑功能:支持在表格中对特定单元格的数据进行编辑,提供了输入框等组件供用户进行修改。 5. 展开/收起:可以通过点击加号和减号来展开或收起树形表格中的子节点,以便更清晰地查看和管理数据。 6. 异步加载:支持异步加载数据,可以根据需要动态加载子节点数据,提高了性能和效率。 7. 数据过滤:组件提供了一个搜索框,可以根据用户输入的关键字来过滤和筛选需要展示的数据,方便用户快速找到所需数据。 总的来说,react-antd-treetable是一个功能丰富且易于使用的树形表格组件,适用于需要展示树形数据结构的项目。无论是对于数据展示、编辑、排序、选择还是过滤等功能,该组件都提供了完善的解决方案,方便开发者快速构建出符合需求的树形表格界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小萝卜-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值