
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
读取csv或者xlsx大文件夹,通过流式数据减少内存压力
如果是xlsx,内部会自动转换为csv来处理数据
xlsx读取的代码从这个仓库复制来的: https://github.com/ffalt/xlsx-extract
import { StreamCSV } from "fluent-csv";
const csvFile = '/file/example.csv'; // csv格式最佳,但是也可以使用xlsx文件
const stream = new StreamCSV({
file: csvFile,
rowCount: 5, // 每次返回5行
skipCount: 10, // 跳过文件起始前10行
}).read().on('data', list => {
stream.pause(); // 暂停流读取
// list 是数组,返回csv中的5行
console.log(list)
// 可在这里处理一些任务
setTimeout(() => {
stream.resume(); // 恢复流读取
}, 5000);
});
import { StreamCSV } from "fluent-csv";
import { createReadStream, createWriteStream } from "node:fs";
createReadStream('/file/example.csv')
.pipe(StreamCSV.transform(async ([row], destroy) => {
// row 是读取到的csv行数据,是字符串数组
// destroy 是终止函数,可随时终止流读取和写入
// 在这里可以异步处理row数据
const newRwo = [
[..row, 'add more data'],
]
return [newRow] // 处理完成后需要将行数据返回
}))
.pipe(createWriteStream('/file/processed.csv'));
// xlsx也支持,但是xlsx内存占用大,不推荐
createReadStream('/file/example.xlsx')
.pipe(StreamCSV.transform(async ([row], destroy) => {
// row 是读取到的csv行数据,是字符串数组
// destroy 是终止函数,可随时终止流读取和写入
// 在这里可以异步处理row数据
const newRwo = [
[..row, 'add more data'],
]
return [newRow] // 处理完成后需要将行数据返回
}, {
isXLSX: true, // 需要在这里标记这是在处理xlsx
}))
.pipe(createWriteStream('/file/processed.csv'));
依赖node-expat,安装可能因为网络问题报错,可以手动安装
NODEJS_ORG_MIRROR=https://registry.npmmirror.com/-/binary/node/ npm install node-expat
FAQs
Read csv row after row.
The npm package fluent-csv receives a total of 0 weekly downloads. As such, fluent-csv popularity was classified as not popular.
We found that fluent-csv demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.