全心全意,
我尝试使用流将数据对象保存到Excel文件中。但是,保存后文件无法打开。
同时,我使用fs.writeFile保存相同的数据对象,并且可以正确打开和查看Excel文件。
请参阅下面的代码。当我比较这两个文件时,用Stream保存的文件大约大2kb,如果我删除"二进制文件"参数,fs.writeFile也不会工作,所以我认为"二进制"正在做着魔术。
你可以让我知道我在这里失踪的是什么吗?提前谢谢!var fs = require('fs'),
path = 'temp',
Stream = require('stream'),
rs = new Stream.Readable({ objectMode: true }),
outFileStream,
result = generateExcelData();
rs.push(result);
rs.push(null);
outFileStream = fs.createWriteStream(path + 'stream.xlsx');//stream.xlsx cannot be opened
rs.pipe(outFileStream);
fs.writeFile(path + 'stream2.xlsx', result, 'binary');//stream2.xlsx can be opened without any issue
答案 0 :(得分:0)
我意识到我错过了这个:
buffer = new Buffer(result,'binary');