Прочитать файл excel в родном реагировании

Я пытаюсь использовать данные существующего файла excel в собственном приложении для реагирования. Я пробовал с xlsx и Exceljs, но каждый раз у меня были ошибки. Каков наилучший способ использования данных Excel (это означает извлечение данных из каждой ячейки в таблице Excel) в реактивном приложении, пожалуйста?

Это пример кода, который я пытался использовать, но он неправильный (у меня следующая ошибка: Unhandled promise rejection, [TypeError: undefined is not an object (evaluating 'i.constants.F_OK')] )

var Excel = require('exceljs');
var workbook = new Excel.Workbook();
workbook.xlsx.readFile("Liste_qcm2.xlsx")
    .then(function() {
        ws = workbook.getWorksheet("Sheet1")
        cell = ws.getCell('A1').value
        console.info(cell)
    });

заранее спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не использовал Excel, но похоже, что readFile предназначен для NodeJS (он принимает путь к файлу, а не объект File).

Вот фрагмент кода для SheetJS (xlsx), который работает на стороне клиента:

    const fileData = await file.arrayBuffer()
    const workbook = XLSX.read(fileData)
    const firstSheet = workbook.SheetNames[0]
    const worksheet = workbook.Sheets[firstSheet]

Значение file — это объект File из файла Input.

ОБНОВИТЬ Приведенный выше фрагмент получает объект File из элемента <Input type = "file" ...>. ReactNative изначально не поддерживает чтение/запись файлов, но есть модули, которые восполняют этот пробел, например. ReactNative

Вот Демонстрация SheetJS ReactNative, который показывает, как приступить к работе.

Вот фрагмент, который считывает каждый столбец в 1-й строке данных. Вы можете превратить это в двойной цикл, чтобы посетить каждую ячейку в электронной таблице.

  function getHeaderRow(sheet: XLSX.WorkSheet) {
    const headers = []
    const range = XLSX.utils.decode_range(sheet['!ref'] ?? '')
    const row = range.s.r
    for (let col = range.s.c; col <= range.e.c; ++col) {
      const cell = sheet[XLSX.utils.encode_cell({ c: col, r: row })] /* find the cell in the first row */
      const header = (cell && cell.t) ? XLSX.utils.format_cell(cell) : "UNKNOWN " + col
      headers.push(header)
    }
    return headers
  }

Извините, я не понимаю, как использовать ваш фрагмент. Где мне ввести путь к моему файлу «test.xlsx»? Например, как отобразить всю первую строку?

Julien Meunier 21.03.2022 10:52

Другие вопросы по теме