0

Typescript で、「未定義のプロパティ 'replace' を読み取れません」というエラーが発生しました。

const xlsx = XLSX.readFile(fileName);

filename は既存のファイルへのパスです。「readFileはサーバー環境でのみ使用できます。ブラウザーには、パスを指定して任意のファイルを読み取るための API がないため、別の戦略を使用する必要があります。」どのようにできるのか?

編集: 読み込もうとしているファイルは xlsx です。それは圧縮されています: ライブラリにはバグがありますか? xlsx@0.15.1 を実行しています

4

2 に答える 2

2
  • NodeJS API を使用すると、ファイル システム API を操作できます。
  • Browser API を使用すると、サーバーからあらゆる種類のデータを取得できます。

したがって、基本的にはファイルをサーバー(ローカルまたはリモート)に配置し、それをフェッチして読み取る必要がありますXLSX.read(data, options)

fetch('http://localhost:8080/public/filename.ext')
   .then(response => response.arrayBuffer())
   .then(buffer => {
         const xlsx = XLSX.read(new Uint8Array(data, {type: 'array'}));
         // process data here
         ...
    })
    .catch(err => console.error(err));

逆に、サーバーでファイルをホストしたくない場合は、もう少し複雑なFileReader APIを試すことができます。

FileReader と File については、次の記事「Reading files in JavaScript using the File API」で読むことができます。

于 2019-09-10T13:53:10.990 に答える