首页 > 解决方案 > React js:如何在Export All to Excel中将字符串记录计数转换为整数

问题描述

我正在使用全部导出到 Excel 功能将 React 表数据导出到 Excel 工作表中。所有数据都以字符串格式插入,但我希望记录计数以整数格式存储,但它以字符串格式存储。

全部导出到 Excel 代码:

<div id="excelLayer">
    <Workbook filename='DownloadedReport.xlsx' element={<a href="javascript:void(null)" className='excel_div'>Export all to Excel</a>}>
    <Workbook.Sheet data={this.state.data} name="Table Data">
    <Workbook.Column label="From" value="senderID"/>
    <Workbook.Column label="To" value="receiverID"/>
    <Workbook.Column label="Transaction File" value="fileName"/>
    <Workbook.Column label="Transaction Date" value="transationDate"/>
    <Workbook.Column label="Record Count" value="recordCount"/>
    <Workbook.Column label="Status" value="status"/>
    </Workbook.Sheet>
    </Workbook>
</div>

React 表记录计数列代码:此代码用于记录计数列排序。

{Header: 'Record Count',accessor: 'recordCount', style: {textAlign: "center"},
  sortMethod: (a, b) => {
    if (isNaN(a) || isNaN(b)) {
      return a > b ? 1 : -1;
      }
      return a - b;
    }
  },

导出的 Excel 数据:

在此处输入图像描述

如何在代码中处理这个问题,以便数据自动存储为整数?

标签: excelreactjs

解决方案


你能确定你将 recordCount 值作为字符串给出吗?

我尝试使用带有整数值的react-excel-workbook并且下载的 excel 是正确的。如果我使用字符串,则 excel 具有字符串格式的值。

注意:假设您的“recordCount”始终是 int 我使用过 parseInt。如果它可以是浮动的,请相应地修改 <Workbook.Column label="recordTotal" value={row => parseInt(row.recordTotal)} />

import React, { Component } from 'react';
import './App.css';
import Workbook from 'react-excel-workbook'

class App extends Component {

  render() {
    const data1 = [
      {
        recordTotal: '123',
        status: 'Not started',
      },
      {
        recordTotal: '12',
        status: 'in progress',
      },
      {
        recordTotal: '111',
        status: 'Completed',
      }
    ]

    return (
      <div className="App">
        <Workbook filename="example.xlsx" element={<a href="javascript:void(null)" className='excel_div'>Export all to Excel</a>}>
          <Workbook.Sheet data={data1} name="Sheet A">
            <Workbook.Column label="recordTotal" value={row => parseInt(row.recordTotal)}  />
            <Workbook.Column label="status" value="status" />
          </Workbook.Sheet>
        </Workbook>

      </div>
    );
  }
}

export default App;

下面是下载的excel。

在此处输入图像描述


推荐阅读