Чтение из потока с помощью выборки и создание файла Excel

#javascript #node.js #exceljs

#javascript #node.js #exceljs

Вопрос:

Я пытаюсь прочитать из файла Excel и сгенерировать его копию / записать в другой файл Excel.

Я смог правильно прочитать файл и создать из него объект buffer, ниже приведена соответствующая часть моего кода.

 
          let fn = `writeToStream_${Date.now()}`;
          await page.exposeFunction(fn, async (body, done) => {
            let buffer = Buffer.from(body, config.get('encoding'));
            //await writeStream.xlsx.write(buffer);  //Not sure what to do here??
          });

          const fetchDataResp = await page.evaluate(async (fn, fetchUrl, requestTimeout, enc) => {
              const fetchPromise = fetch(fetchUrl, {signal});
              const stream = await fetchPromise;
              let reader = stream.body.getReader();
              const decoder = new TextDecoder();
              while(true) {
                const {done, value} = await reader.read();
                if (done){
                  break;
                }
                let v = decoder.decode(value, {stream: true, ignoreBOM: false});
                await window[fn](v, false);
              }
              await window[fn]("", true);
              return receivedLength;
          },fn,fetchUrl,config.get('export_generator'), config.get('encoding'));

 

Я не уверен, как приступить к созданию файла Excel из этого. Любая помощь была бы очень полезной, спасибо.

Ответ №1:

Просто быстрая мысль — возможно, это не тот подробный ответ, который вы ищете, но, возможно, наличие данных в формате / файле TSV (или CSV) может быть достаточно простым для ваших нужд (?); например, на самом деле не нужно напрямую полагаться на Excel / делать акцент на Excel(по крайней мере, некоторые из) жестких прививок для вас (- в нем «Экспорт» в общий формат от вашего имени).

‘EPPlus’ — приличная библиотека; возможно, эта ссылка может представлять некоторый интерес:

https://andriybuday.com/2016/02/working-with-excel-files-using-epplus-and-xlsx-js.html