Excel 数据生成器
按列定义规则,批量生成结构化测试数据并导出 .xlsx 文件
列定义
数据预览
仅显示前 10 行,导出时生成全部行数
仅显示前 10 行,导出时生成全部行数
什么是 Excel 数据生成器?
Excel 数据生成器是一款在线批量生成结构化测试数据的工具。你只需为每一列选择一种数据类型——姓名、手机号、身份证、日期、金额、UUID 等——设定生成行数,即可一键产出符合规则的模拟数据并导出为标准的 .xlsx 文件。所有数据都在你的浏览器本地生成,不会上传到任何服务器,既适合开发和测试时填充数据库、演示界面,也能用于教学和演示。工具支持十种语言的本地化假数据:选定数据语言后,姓名、公司、城市、电话等字段会以对应语言地区的真实习惯格式生成,例如日语生成日本姓名、韩语生成韩国公司名。
使用方法
使用步骤
- 在顶部选择「数据语言」,决定姓名、公司等本地化字段的生成风格
- 设置需要生成的行数,或点击快捷按钮选择 100 / 1千 / 1万 / 5万
- 在「列定义」中逐列添加:填写列名、选择数据类型、按需填写参数(如数字的范围、日期的起止)
- 点击「生成预览」查看前 10 行效果,确认无误后点击「导出 .xlsx」下载文件
使用技巧
- 枚举类型用逗号分隔多个候选项,适合生成性别、状态、等级这类固定取值
- 正则表达式类型可按自定义规则生成字符串,灵活覆盖内置类型未提供的场景
- 金额、百分比、日期等类型在导出的 Excel 中带有正确的单元格格式,可直接排序和计算
- 身份证号类型仅适用于中文场景,会生成带正确校验位的 18 位号码
使用场景
技术原理
工具的核心是一套按列类型分发的数据生成器。每列绑定一个类型,生成时遍历每一行调用对应类型的生成函数,产出一个二维数组,最后写入 Excel 工作表。类型分为两类:一类是本地化假数据,借助 @faker-js/faker 的多语言 locale 模块,按选定的数据语言调用对应地区的姓名、公司、城市、电话等生成方法,因此日语得到日本姓名、韩语得到韩国地址;另一类是格式化数据,如数字、日期、金额、UUID、IP、身份证等,由工具自行实现的纯函数生成,其中中文身份证按 GB 11643 标准计算 18 位号码的校验位。 数据按选定语言对应的 faker locale 模块动态加载,只引入当前需要的那一份,避免把十种语言的数据全部打包进页面。导出环节使用 SheetJS(xlsx)在浏览器端构建工作簿:对数字、日期等类型写入原生单元格类型并设置数字格式码(如 yyyy-mm-dd、#,##0.00、0.00%),这样 Excel 打开后类型正确、可直接参与公式计算,而非全部变成文本。 所有生成与导出都在浏览器本地完成,不上传任何数据。随机源使用浏览器内置的伪随机数生成器,单次生成结果互不重复但不可复现;如需可复现的数据,可固定随机种子(后续版本支持)。生成上限设为 5 万行,是内存占用与导出耗时的平衡点,足以覆盖绝大多数测试与演示需求。
- 按列类型分发:本地化数据走 faker locale,格式化数据走自实现纯函数
- faker locale 动态加载,只引入当前语言,控制包体积
- Excel 单元格写入原生类型 + 数字格式码,保证类型可计算
- 中文身份证按 GB 11643 校验位算法生成,号码合法
- 全程浏览器本地处理,数据不外传,保护隐私
示例
用户表样例
列定义:
ID -> 自增序号(起始 1,步长 1)
姓名 -> 姓名
邮箱 -> 邮箱
手机号 -> 电话号码
注册时间 -> 日期时间
行数:1000
输出:用户表.xlsx(1000 行,每列类型正确)订单金额样例
列定义:
订单号 -> UUID
金额 -> 金额(最小 10,最大 9999,2 位小数)
折扣 -> 百分比(最小 0,最大 50)
状态 -> 枚举(待付款,已付款,已发货,已完成)
导出后金额列带货币格式,折扣列带百分比格式,可直接求和。常见问题
生成的数据会上传到服务器吗?
不会。所有数据都在你的浏览器本地生成和导出,工具不会把你的列定义或生成结果发送到任何服务器,适合处理需要保密的表结构。
最多能生成多少行?
单次最多 50000 行。这是浏览器内存与导出耗时的平衡点,足以覆盖绝大多数测试和演示场景。如需更大数据量,建议分多次生成或改用数据库脚本。
为什么姓名、公司等数据要选择「数据语言」?
姓名、公司、城市、电话等字段具有强烈的地区特征。选定数据语言后,工具会按对应语言地区的真实习惯生成,例如选日语生成日本姓名、选韩语生成韩国公司名,使测试数据更贴近真实业务。
导出的 Excel 里数字和日期为什么不是文本?
工具对数字、金额、百分比、日期等类型写入了原生单元格类型并设置数字格式码,所以 Excel 打开后类型正确、可直接排序和参与公式计算,而不是无法计算的文本。
身份证号类型在非中文语言下能用吗?
身份证号类型按中国大陆 18 位身份证标准(GB 11643)生成,含正确校验位,主要适用于中文场景。其他语言地区建议改用 UUID 或自定义正则生成对应格式的证件号。
如何生成工具内置类型没有的格式?
使用「正则表达式」类型,按自定义规则生成字符串。例如 [A-Z]{3}\d{4} 可生成三位大写字母加四位数字的编码,灵活覆盖内置类型未提供的场景。