最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

node.js - Stream SheetJS xlsx to form-data in node - Stack Overflow

programmeradmin3浏览0评论

I need to generate and upload a xlsx in node. Any way to do this without saving the file to disk?

import FormData from 'form-data';
import XLSX from 'xlsx';
import * as fs from 'fs';

var form = new FormData();
var data = [['a','b'],[1,2]];
var ws = XLSX.utils.aoa_to_sheet(data);
let wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "Sheet1");

//can I combine the next 2 lines somehow?
XLSX.writeFile(wb, 'abc.xlsx', {compression:true});
form.append('file', fs.createReadStream('abc.xlsx'));
//...

I need to generate and upload a xlsx in node. Any way to do this without saving the file to disk?

import FormData from 'form-data';
import XLSX from 'xlsx';
import * as fs from 'fs';

var form = new FormData();
var data = [['a','b'],[1,2]];
var ws = XLSX.utils.aoa_to_sheet(data);
let wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "Sheet1");

//can I combine the next 2 lines somehow?
XLSX.writeFile(wb, 'abc.xlsx', {compression:true});
form.append('file', fs.createReadStream('abc.xlsx'));
//...
Share Improve this question edited yesterday traynor 8,6823 gold badges15 silver badges28 bronze badges asked yesterday user433342user433342 1,0481 gold badge10 silver badges33 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

Just write the workbook as a buffer (by passing buffer type to write, see write output types), and then simply append it to form-data:

const file = XLSX.write(wb, {type: 'buffer', compression:true});

form.append('file', file, {filename: 'abc.xlsx'});
发布评论

评论列表(0)

  1. 暂无评论