客户CSV导入
灵感:能力工具箱 csvtojson(导入客户 CSV)。
> 小四原创:CSV 文本 → csv().fromString → 客户行对象数组。
> 表头需与业务字段约定(如 name,mobile)。
何时使用
- 本地上传客户名单 CSV
- Demo 批量导入预览
- 与 json2csv 导出成对使用
硬约束
- 依赖:
csvtojson。 - 解析失败返回可读错误,勿未捕获抛错。
- 大文件建议分片/上限提示(本 Skill 默认适合小表)。
- 实现要点注释标 小四原创。
- 不做服务端去重引擎(可另接客户去重 Skill)。
推荐实现
import csv from 'csvtojson'
export type CsvRow = Record<string, string>
// 小四原创:客户 CSV → JSON 行
export async function csvToCustomerRows(
text: string,
): Promise<{ ok: true; rows: CsvRow[] } | { ok: false; error: string }> {
try {
const rows = await csv({ trim: true, ignoreEmpty: true }).fromString(String(text ?? ''))
return { ok: true, rows: rows as CsvRow[] }
} catch (e) {
return { ok: false, error: e instanceof Error ? e.message : String(e) }
}
}
Agent 步骤
npm i csvtojson。- 文件
FileReader读文本后调用;表格预览再确认导入。 - 自测:表头+两行可解析;坏 CSV
ok:false。
不要做
- 与 papaparse-csv 混用却不说明选型。
- 静默导入无预览直接写库。
附加
- README.md · reference.md · templates/usage.md