Bir excel dosyasını okumak için node.js paketini 'xlsx' kullanıyorum. Dosya sisteminden bir dosya okuma zaman uyumlu olarak çalışır, ancak akış biraz zor. (Dosya uzaktan servis edilir ve sadece bir akış olarak alabiliriz.) Yerel akış dosyaları aynı sorunu üretir, bu nedenle çoğaltılması kolaydır.Düğüm: bir Excel dosyasını akışa almaya ve arabelleği 'xslx' kitaplığına geçirmeye çalışıyor
Örnekleri şu şekilde izledim: https://www.npmjs.com/package/xlsx ancak yaklaşıma bağlı olarak "ulaşılan veri sonu" veya "desteklenmeyen dosya" olsun.
const XLSX = require('xlsx');
const fs = require('fs');
const stream = fs.createReadStream('sample.xlsx');
// This function returns Error: Unsupported file 48
documentedExample = function(){
var arr = new Array();
stream.on('data', function(arraybuffer){
var data = new Uint8Array(arraybuffer);
for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
});
stream.on('end', function(){
var bstr = arr.join("");
var workbook = XLSX.read(bstr, {type:"binary"});
});
}
// This function returns Error: End of data reached (data length = 75589, asked index = 77632). Corrupted zip ?
alternateExample = function(){
var bufferArray = [];
stream.on('data', function(thisChunk){
bufferArray.push(thisChunk);
});
stream.on('end', function(){
var excelDataBuffer = bufferArray.join("");
excelDataBuffer = excelDataBuffer.toString();
var workbook = XLSX.read(excelDataBuffer, {type:"binary"});
});
}
Yerel kullanım için bir xlsx ikili ürününü yeniden birleştirmenin doğru yolu ne olurdu?