const xlsx = require('xlsx');
let wb = xlsx.utils.book_new();
xlsx.utils.book_append_sheet(wb, xlsx.utils.json_to_sheet([{ a: 1, b: 2 }, { a: 3, b: 4 }]), 'a');
xlsx.utils.book_append_sheet(wb, xlsx.utils.aoa_to_sheet([['a', 'b', 'c'], [4, 5, 6]]), 'b');
xlsx.writeFile(wb, path);
const fs = require('fs');
const fastcsv = require('fast-csv');
let stream = fs.createWriteStream(path);
let csvStream = fastcsv.format({ headers: true });
csvStream.pipe(stream);
for (let i = 0; i < 5; i++) csvStream.write({ a: i, b: i + '\t' });
csvStream.end(() => console.log(1));
<input type="file" />
<script src="https://oss.sheetjs.com/sheetjs/xlsx.full.min.js"></script>
<script>
let xlsx = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(xlsx, XLSX.utils.aoa_to_sheet([
["a", "b"],
["下载", "xlsx"],
["sheetjs", new Date()]
]), "sheet");
XLSX.writeFile(xlsx, "下载.xlsx");
document.querySelector("input").onchange = function () {
let file = this.files;
file = file && file[0];
if (!file) return;
let read = new FileReader();
read.readAsBinaryString(file);
read.onload = e => {
let data = e.target.result;
data = XLSX.read(data, { type: 'binary' });
console.log(XLSX.utils.sheet_to_json(data.Sheets[data.SheetNames[0]]));
};
}
</script>