React js: как преобразовать количество строковых записей в целое число при экспорте всего в Excel

#excel #reactjs

#excel #reactjs

Вопрос:

Я использую функциональность экспортировать все в 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:

введите описание изображения здесь

Как обработать это в коде, чтобы данные автоматически сохранялись как целое число?

Комментарии:

1. Какую библиотеку вы используете?

Ответ №1:

Можете ли вы убедиться, что вы указываете значение RecordCount в виде строки?

Я попытался использовать react-excel-workbook с целочисленными значениями, и загруженный Excel является правильным. И если я использую string, 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.

введите описание изображения здесь

Комментарии:

1. Да, я сохраняю в виде строки.

2. Итак, возможно ли изменить его на число?

3. Нет, это невозможно преобразовать в целое число. я могу выполнять обработку только в столбце или в рабочей книге. <Рабочая книга. Метка столбца = «Количество записей» значение = «RecordCount» /> Есть ли что-нибудь, что мы можем добавить сюда, чтобы преобразовать его в inetger???

4. Отредактировал ответ. взгляните