前端开发中ui(antd)表格导出为excel。详细步骤一看就会

这篇具有很好参考价值的文章主要介绍了前端开发中ui(antd)表格导出为excel。详细步骤一看就会。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在开发的时候往往有这样的需求,将页面上的表格导出为excel文件。以随手写的demo为例。

前端表格导出excel,javascript,react.js,webpack,vscode

 文章来源地址https://www.toymoban.com/news/detail-553916.html

1、首先我们需要下载一个插件,用于将页面中的数据转为excel文件

         前端表格导出excel,javascript,react.js,webpack,vscode

 可以通过我们的package.json文件去查看是否安装好

前端表格导出excel,javascript,react.js,webpack,vscode

2、在我们需要用到的页面去引用

前端表格导出excel,javascript,react.js,webpack,vscode

 3、定义触发事件

//触发的节点
 <Button type="primary" htmlType="subout" onClick={downloadFileToExcel} >
    导出
 </Button>


//导出表格的方法,只看方法
  function downloadFileToExcel() {
    const datas=dataSource ? dataSource:'';//表格数据
    var option={};
    let dataTable = [];
    if (datas) {
        datas.map((item)=>{   
            let obj = {
                title: item.title,  
                region: item.region,
                publishTime: item.publishTime,  
            }
            dataTable.push(obj);
            return dataTable
        })
     
      }
      option.fileName = '新闻信息'
      option.datas=[
        {
          sheetData:dataTable,
          sheetName:'sheet',
          sheetFilter:['title','region','publishTime'],
          sheetHeader:['新闻名称','区域','出版时间'],
        }
      ];
      var toExcel = new ExportJsonExcel(option); 
      toExcel.saveExcel(); 
  } 

4、完整代码(能看懂前面的第4段可以不看)

import React, { Component } from 'react'
import ExportJsonExcel from 'js-export-excel';
import { Form ,Button,DatePicker,Table,Select } from 'antd';
import axios from 'axios';
const { Option } = Select;

export default class Mylist extends Component {
    state={
        dataSource:null,
        children:[]
    }
   
    componentDidMount(){
        const list=[]
        axios.get('http://localhost:5000/news').then((res)=>{
            res.data.map((Item)=>{
                return (Item.key=Item.id)
            })
            this.setState({dataSource:res.data})
            res.data.map((it)=>{
                return(list.push(<Option value={it.title} key={it.id}>{it.title}</Option>))
            })
            this.setState({children:list})
        })
    }
  render() {
    let {dataSource,children} =this.state
//下拉搜索框

  function onChange(value) {
    console.log(`selected ${value}`);
  }
  
  function onBlur() {
    onChange()
  }
//导出表格
  function downloadFileToExcel() {
    console.log(dataSource)
    const datas=dataSource ? dataSource:'';//表格数据
    console.log(datas)
    var option={};
    let dataTable = [];
    if (datas) {
        datas.map((item)=>{
            let obj = {
                title: item.title,
                region: item.region,
                publishTime: item.publishTime,
            }
            dataTable.push(obj);
            return dataTable
        })
     
      }
      option.fileName = '新闻信息'
      option.datas=[
        {
          sheetData:dataTable,
          sheetName:'sheet',
          sheetFilter:['title','region','publishTime'],
          sheetHeader:['新闻名称','区域','出版时间'],
        }
      ];
      var toExcel = new ExportJsonExcel(option); 
      toExcel.saveExcel(); 
  } 
      //列表
      
      const columns = [
        {
          title: '新闻名称',
          dataIndex: 'title',
          key: '1',
        },
        {
          title: '区域',
          dataIndex: 'region',
          key: '2',
        },
        {
          title: '出版时间',
          dataIndex: 'publishTime',
          key: '3',
        },
      ];

    return (
      <div style={{marginTop:'10px',marginLeft:'10px'}}>
        <Form layout="inline">
            <Form.Item>
                <Select
                showSearch
                style={{ width: 200 }}
                placeholder="请输入新闻名称"
                optionFilterProp="children"
                onChange={onChange}
                onBlur={onBlur}
                filterOption={(input, option) =>
                option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
                }
                >
               {children}
                </Select>
            </Form.Item>

            <Form.Item>
            <DatePicker renderExtraFooter={() => 'extra footer'} 
            placeholder="请选择日期"
            />&nbsp;
            <DatePicker renderExtraFooter={() => 'extra footer'} 
            placeholder="请选择日期"/>
            </Form.Item>

            <Form.Item>
                <Button type="primary" htmlType="submit">
                    提交
                </Button>
            </Form.Item>
            <Form.Item>
                <Button type="primary" htmlType="subout" onClick={downloadFileToExcel} >
                    导出
                </Button>
            </Form.Item>
        </Form>

        <Table dataSource={dataSource} columns={columns} />;
      </div>
    )
  }
}

5、现在就可以导出了 

前端表格导出excel,javascript,react.js,webpack,vscode

 

6、打开查看 

前端表格导出excel,javascript,react.js,webpack,vscode 

 

 

到了这里,关于前端开发中ui(antd)表格导出为excel。详细步骤一看就会的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3前端excel导出;组件表格,自定义表格导出;Vue3 + xlsx + xlsx-style

    当画面有自定义的表格或者样式过于复杂的表格时,导出功能可以由前端实现 1. 使用的插件 : sheet.js-xlsx 文档地址:https://docs.sheetjs.com/ 中文地址:https://geekdaxue.co/read/SheetJS-docs-zh/README.md xlsx-style:https://www.npmjs.com/package/xlsx-style 2. 安装引用 安装插件-vue3 引用插件 3. 组件表格

    2024年04月26日
    浏览(39)
  • Ant-Design-Pro-V5: ProTable前端导出excel表格。

    Prtable表格中根据搜索条件实现excel表格导出。 代码展示: index.jsx 数据字典格式返回: 以 teacherTypeObj 为例 向services.js中 lecturerExportExcel 方法中传入的格式为: services.js中 lecturerExportExcel 导出方法: utils 中 paramsFilter 方法:过滤无用参数

    2024年02月09日
    浏览(44)
  • 【vue导入导出Excel】vue简单实现导出和导入复杂表头excel表格功能【纯前端版本和配合后端版本】

    前言 这是一个常用的功能,就是导入和导出excel表格 但是时常会遇到一些复杂表头的表格导出和导入 比如我这个案例里面的三层表头的表格。 网上看了下发现了一个非常简单导出和导入方法 当然这个是纯前端的版本,会出现分页不好下载的情况。所以实际工作中,导出还是

    2024年02月11日
    浏览(64)
  • VUE+Elment-ui怎么实现将table表格数据导出到Excel文件?

    最近开发公司后台管理系统时,*运营提出了个需求就是将某表格数据实现一键导出功能,我一实习生我会啥啊,搜吧,好在找到了,捏哈哈,接下来就是实现的流程,方便理解,我见了个简单的页面供大家参考 1.template部分 2.script部分 1.当前页面 2.点击导出按钮 3.下载完成

    2024年02月05日
    浏览(45)
  • 前端vue+elementui导出复杂(单元格合并,多级表头)表格el-table转为excel导出

    需求 :前端对el-table表格导出 插件 : npm install xlsx -S npm install file-saver --save 原理 :直接导出el-table的表格里面的数据,这样就会存在缺点,只会导出当前页面的数据,如果需要导出全部数据,可以自己重新渲染一个全部数据不可见的el-table表格,来导出就可以了 扩展 :经过

    2024年02月04日
    浏览(66)
  • 前端vue导出excel(标题加粗+表头自定义样式+表格边框+单元格自定义样式)

    接近过年,被一大堆excel报表烦死的我,遇到要求前端导出excel的后端,差点猝死的我拼命学习中,整理出这篇文章,希望看到这篇文章的你有所收获,也希望能收到大佬们的指点 之前用c#,.net弄过导出word,excel,可以点击查看.NET使用Aspose控件生成Word(可构建自定义表格)、

    2024年04月15日
    浏览(59)
  • 前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法

    一、vue实现导出excel 1、前端实现 xlsx是一个用于读取、解析和写入Excel文件的JavaScript库。它提供了一系列的API来处理Excel文件。使用该库,你可以将数据转换为Excel文件并下载到本地。这种方法适用于在前端直接生成Excel文件的场景。 更多介绍可参见官网 1、安装xlsx依赖 2、引

    2024年01月23日
    浏览(84)
  • sheetJs / xlsx-js-style 纯前端实现导出 excel 表格及自定义单元格样式

    xlsx 地址:https://www.npmjs.com/package/xlsx SheetJs 地址:https://docs.sheetjs.com/docs/ xlsx-js-style 地址:https://www.npmjs.com/package/xlsx-js-style !cols 设置列宽 cols 为一个对象数组,依次表示每一列的宽度 wpx 字段表示以像素为单位,wch 字段表示以字符为单位 hidden 如果为真,则隐藏该列 !rows 设

    2024年02月06日
    浏览(45)
  • table 导出表格 Excel

    在请求中需要设置 responseType: blob 并且核心在于函数: 在页面中发送请求: 在 element 的表格组件中对选中的行进行导出

    2024年02月15日
    浏览(39)
  • axios请求、 Excel 表格导出

    注:基于axios 直接请求后端接口,导出Excel 表格

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包