微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 React 中以 excel 格式导出数据

如何解决在 React 中以 excel 格式导出数据

我已经设法以 csv 格式导出数据,但我很难以 xls/xlsx/excel 格式导出。

有 2 个单选按钮用于将状态值从 csv 更改为 xls 并返回,并且基于该值,三元知道应该使用哪种格式进行导出。

csv 部分工作正常,但我不知道要写什么才能进行 xls 导出。

必须在这个三元运算符的第二部分添加一些东西:

{data.exportType === 'csv' ? (
  <CSVLink {...csvReport}>export CSV</CSVLink>
) : (
  <div>export XLS</div>
)}

这是组件:

import React,{ useState } from 'react';
import { useSelector,shallowEqual } from 'react-redux';
import { OutlineButton,RadioButton } from '@thermofisher/react-komodo-design';
import './style.scss';
import { CSVLink } from 'react-csv';

const ExportOrders = () => {
  const initialData = {
    exportType: 'xls',page: 0
  };
  const [data,setData] = useState(initialData);

  const orders = useSelector(
    (state) => state.deferredPayments.orderLines,shallowEqual
  );

  const csvReport = {
    data: orders,filename: 'result.csv'
  };

  const onChangeHandler = (e,type) => {
    const name = e.target.name;

    setData({
      ...data,[name]: type
    });
  };

  const handleSubmit = (e) => {
    e.preventDefault();
  };

  return (
    <form onSubmit={handleSubmit} className="export-container">
      <div className="c-radio-container">
        <RadioButton
          name="exportType"
          checkedValue={data.exportType}
          value="xls"
          onChange={(e) => onChangeHandler(e,'xls')}
          inline>
          XLS
        </RadioButton>
        <RadioButton
          name="exportType"
          checkedValue={data.exportType}
          value="csv"
          onChange={(e) => onChangeHandler(e,'csv')}
          inline>
          CSV
        </RadioButton>
      </div>

      <OutlineButton>
        {data.exportType === 'csv' ? (
          <CSVLink {...csvReport}>export CSV</CSVLink>
        ) : (
          <div>export XLS</div>
        )}
      </OutlineButton>
    </form>
  );
};

export default ExportOrders;

有什么想法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。