更新记录

1.0.0(2026-11-05) 下载此版本

1.0.0

  • 首个版本,第 13 批插件。
  • CSV / xlsx 读写:零依赖、结果结构稳定、不瞎改数据

平台兼容性

PlugKit 表格套件

CSV / xlsx 读写:零依赖、结果结构稳定、不瞎改数据

纯前端 CSV(RFC4180)与 xlsx 读写:中文/引号/换行全支持、类型推断保留前导零、导出不夹带 _id 列,遇到 .xls 返回友好错误码而非 undefined 崩溃。

零第三方依赖 · 零系统权限 · 无需 uniCloud · 不联网、不采集、不上报。

5 分钟接入

  1. 把 uni_modules/pk-excel/ 拷进你的 uni-app 工程(或用 HBuilderX 从插件市场导入)。
  2. 在需要的地方引入:
import pk from '@/uni_modules/pk-excel/js_sdk/index.js'

pk.init(/* 可选配置 */)
const r = pk./* 方法 */()
  1. 完整可运行工程见 example/(导入即跑,每个公开方法都有演示按钮)。

API

方法 说明
parseCSV(text, opts) RFC4180 解析,返回 { headers, rows, meta }
stringifyCSV(headers, rows, opts) 生成 CSV,自动转义引号/逗号/换行,可选 BOM
parseXlsx(files, opts) 从 xlsx 部件映射解析,返回 { headers, rows, sheetName, meta }
buildXlsx(sheets, opts) 生成 xlsx 部件映射,交给 writeXlsx 打包
readFile(arrayBuffer, name) 自动按扩展名分发,返回统一结构或友好错误
writeXlsx(sheets, opts) / writeCSV(headers, rows, opts) 导出为 ArrayBuffer / 字符串
inferType(s) / colLetter(n) / colIndex(s) 类型推断与 A1 列号工具

自定义传输 / 注入点(演示与单测可用)

pk.setInflate(fn) 自定义 deflate 解压器(默认使用随包 pako)。

错误码

码 含义
E-EX-01 CSV 格式错误(引号未闭合)
E-EX-02 表头与行数据不对齐
E-EX-03 xlsx 部件缺失
E-EX-04 XML 解析失败
E-EX-05 列号越界
E-EX-07 不支持的文件类型
E-EX-10 zip 读写失败

竞品痛点 → 设计决策

痛点 本插件
导入 .xls 直接抛 parse_xlscfb is not defined 能力边界写死:仅 .csv / .xlsx;遇到 .xls 返回 E-EX-07 与可操作提示,绝不抛未定义函数
返回结构飘忽,res.find is not a function 固定返回 { headers, rows, sheetName, meta },rows 永远是数组的数组,并对齐表头长度
导出莫名多一列 _id / 表头跑到第 10 列 导出只写你给的 columns,列序即数组序;不注入任何隐式列;列宽与表头行可配
依赖 17M 云函数传不上 / 必须走云端 零第三方依赖,zip 容器与 pako 随包(复用 pk-zip vendor),全端离线可用
中文、逗号、换行、引号解析错乱 RFC4180 状态机:双引号转义 ""、字段内 CRLF、UTF-8 BOM、分隔符可配
编号 001 被转成 1、长数字精度丢失 类型推断保守:带前导零/超 15 位数字一律保留字符串;日期需显式 parseDates

兼容性

见 docs/compatibility.md。纯逻辑 API 已通过 node 单测;真机项按 HBuilderX 云打包验证。

目录

pk-excel/
├── README.md / CHANGELOG.md
├── uni_modules/pk-excel/    # 发布包(package.json + js_sdk/)
├── example/             # 完整可导入 HBuilderX 工程 + 演示页
├── docs/                # 在线文档 HTML / listing.md / compatibility.md
└── tests/run.test.js    # node 单测(node tests/run.test.js)

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。