更新记录

1.0.1(2026-09-02)

  • 优化插件名称、搜索标签和市场简介
  • 增加适用场景、能力对比、购买前说明和常见问题
  • 更新接入示例,突出批量导入到业务接口的完整流程
  • 移除可能触发平台文档过滤的示例字段

1.0.0(2026-09-02)

  • 支持本地读取 xlsx、xls、xlsm 与 CSV 文件
  • 支持多工作表选择和自定义表头行
  • 支持表格预览、字段别名智能匹配与手动映射
  • 支持必填、唯一、正则、数字、整数、布尔和日期校验
  • 支持错误明细复制与结构化业务数据输出

平台兼容性

uni-app(5.24)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × × × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - × ×

其他

多语言 暗黑模式 宽屏模式
× ×

Excel 批量导入、字段映射与数据校验专业版

把 Excel 导入功能从“读取文件”直接做到“可提交业务接口”。适合客户资料、商品、订单、库存、报名名单等后台批量导入场景。

用户选择文件后,组件会完成:选择工作表 → 识别表头 → 预览数据 → 智能匹配字段 → 转换类型 → 校验错误 → 输出 JSON

为什么需要它

普通 xlsx 解析库只能把单元格读出来,真正的业务导入还需要字段匹配、类型处理、必填检查、重复检查、错误定位和交互界面。本组件把这些常见工作组合成可直接使用的完整流程。

能力 仅使用 xlsx 解析库 本组件
读取 Excel / CSV 支持 支持
工作表与表头行选择 需要开发 已内置
导入前表格预览 需要开发 已内置
中文列名智能匹配业务字段 需要开发 已内置
类型转换与数据校验 需要开发 已内置
错误行定位与复制 需要开发 已内置
输出接口可用 JSON 需要开发 已内置

适用场景

  • 客户、会员、员工等资料批量导入
  • 商品、SKU、库存和价格批量更新
  • 订单、账单、报名名单批量录入
  • 不同客户 Excel 模板的列名兼容
  • 导入前发现缺失、重复和格式错误的数据

核心能力

  • 支持 .xlsx.xls.xlsm.csv
  • 支持多个工作表切换和任意表头行设置
  • 支持最多 10000 行读取与横向表格预览
  • 根据字段 label、key、aliases 自动匹配,也可手动调整
  • 支持 string、number、integer、boolean、date 类型转换
  • 支持 required、unique、pattern 校验
  • 错误信息包含原始行号、目标字段和具体原因
  • 校验通过后输出 datamappingsource,可直接提交后端
  • 全程在用户设备本地解析,不上传业务文件

3 分钟接入

快速使用

<template>
  <dz-excel-mapper-pro
    :target-fields="fields"
    @confirm="handleConfirm"
    @error="handleError"
  />
</template>

<script setup>
const fields = [
  { key: 'productName', label: '商品名称', required: true,
    aliases: ['产品名称', '品名'] },
  { key: 'sku', label: '商品编码', required: true, unique: true,
    aliases: ['SKU', '货号'] },
  { key: 'stock', label: '库存数量', type: 'integer', required: true,
    aliases: ['库存', '数量'] }
]

function handleConfirm(result) {
  // result.data 已完成字段改名、类型转换和规则校验
  uni.request({
    url: '/api/products/import',
    method: 'POST',
    data: result.data
  })
}
</script>

字段配置示例

const fields = [
  {
    key: 'orderNo',
    label: '订单编号',
    aliases: ['订单号', '单号'],
    required: true,
    unique: true
  },
  {
    key: 'amount',
    label: '订单金额',
    aliases: ['金额', '实付金额'],
    type: 'number',
    required: true
  },
  {
    key: 'createdAt',
    label: '下单日期',
    aliases: ['日期', '创建时间'],
    type: 'date'
  }
]

属性

属性 类型 默认值 说明
targetFields Array 必填 目标字段配置
previewLimit Number 6 预览行数
errorPreviewLimit Number 8 页面显示的错误条数
maxFileSize Number 20MB 最大文件字节数
maxRows Number 10000 最大读取数据行数

事件

事件 说明
loaded 文件读取完成,返回文件名和工作表列表
parsed 工作表解析完成
validated 校验完成,返回错误数组
confirm 校验无错误时输出 data、mapping 和 source
error 文件读取或解析失败

兼容说明

当前版本面向 uni-app Vue3 的 Web(Chrome、Safari)和微信小程序。Web 从本地文件选择,微信小程序从聊天会话选择文件。普通 uni-app 的 App-vue 暂不支持内置文件选择,因此不声明 App 支持;如业务已经取得 ArrayBuffer,可通过组件实例的 loadArrayBuffer(buffer, fileName) 方法载入。

购买前说明

  • 插件市场支持免费试用,建议先在目标项目验证界面与文件格式。
  • 普通授权适合直接用于项目;源码授权适合需要阅读或二次调整全部源码的团队。
  • 本组件重点解决“业务数据导入”,不包含 Excel 样式编辑和 Excel 文件导出。
  • 加密文件、损坏文件以及包含复杂宏逻辑的文件不在支持范围内。

常见问题

Excel 列名和系统字段名不同怎么办?

aliases 中配置常见列名,组件会自动匹配;用户也可以在导入界面手动调整。

表头不是第一行怎么办?

组件支持切换表头行,会基于新表头重新生成预览和字段映射。

能否在校验通过后直接调用接口?

可以。监听 confirm 事件,使用 result.data 作为接口请求数据即可。

文件是否会上传到第三方服务器?

不会。文件解析和校验均在用户设备本地完成。

开源软件声明

插件内置 SheetJS Community Edition 0.20.3 官方构建,依据 Apache License 2.0 使用。详见 THIRD_PARTY_NOTICES.md

隐私、权限声明

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

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

插件仅在用户设备本地读取并解析用户主动选择的Excel或CSV文件,不采集、不上传任何数据。

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

暂无用户评论。