Resource details · 实用工具
把一张小表格变成 JSON 数据
用第一行作表头,把制表符分隔的几行文字转换为数据对象。
Resource text, examples and licences retain their original language. Code is displayed only; this page does not execute it or call AI.
Resource details
初步理解表格与 JSON 的对应关系。示例是物品清单,不读取 Excel 文件,不联网,也不调用 AI。
Before you start
- Platforms
- Windows · macOS · Linux
- Content updated
- 先安装 Node.js 24,并准备可以保存纯文本的编辑器。
- 把资源保存为 table-json.mjs;首次运行只用代码里自带的示例文字。
node table-json.mjs需先安装 Node.js。无需 npm install;本例不联网、不读写用户文件。
Common pitfalls
- Windows 开启文件扩展名显示,避免保存成 .mjs.txt;教程的文件夹开终端步骤以 Windows 为例。
- 仅处理简单制表符表格,不支持单元格内换行、制表符或带引号转义的CSV。各列都保留为字符串;仅去掉末尾空白行,保留空单元格;中间的整行空白会提示列数错误。
Complete resource
// SPDX-License-Identifier: MIT
// 原创教学示例:接受简单的制表符表格;不是完整Excel/CSV读取器。
export function simpleTableToJSON(text) {
if (typeof text !== "string" || text.length > 20000) throw new TypeError("请提供不超过20000字符的表格文字");
const rows = text.replace(/\r\n|\r/g, "\n").replace(/\n+$/, "").split("\n").map(line => line.split("\t"));
const headers = rows.shift()?.map(cell => cell.trim()) || [];
if (!headers.length || headers.some(key => !key) || new Set(headers).size !== headers.length) throw new Error("表头不能为空或重名");
if (headers.length > 30 || rows.length > 100) throw new RangeError("最多30列、100行数据");
return rows.map((cells, index) => {
if (cells.length !== headers.length) throw new Error("第" + (index + 2) + "行的列数不一致");
return Object.fromEntries(headers.map((key, column) => [key, cells[column]]));
});
}
const input = "物品\t数量\n笔记本\t2\n铅笔\t3";
console.log(JSON.stringify(simpleTableToJSON(input)));How to use it
先运行资源中自带的小样本,看到结果以后,再试着改一两个值。
下载并保存示例
下载代码,保存为 table-json.mjs。Windows 在资源管理器打开“查看 → 显示 → 文件扩展名”,确认没有多出 .txt。
运行一次
在这个文件夹的地址栏输入 powershell 并回车,打开终端后输入下面的命令。若提示找不到 node,安装 Node.js 后重新打开终端。
对照结果再改一个值
核对两个物品和数量。先修改示例单元格;代码里的 \t 表示制表符,\n 表示换行。
- Save as
table-json.mjs- Environment
- 先安装 Node.js 24,并准备记事本或代码编辑器。本站实际核验版本为 v24.19.0。
- Dependencies and costs
- 无需账号或API密钥;本例不联网,不读写用户文件,不产生模型接口费用。设备和电力仍有成本。
Command
node table-json.mjsExpected output
[{"物品":"笔记本","数量":"2"},{"物品":"铅笔","数量":"3"}]Local verification
2026-10-23 · Node.js v24.19.0
本站本地运行了下载时附带完整许可的原样示例,核对演示输出与注明的边界输入;不代表所有设备或生产场景验证。
Suitable uses
- 第一次保存并运行 JavaScript 小例子
- 把一张小表格变成 JSON 数据
Before using it
- 仅处理简单制表符表格,不支持单元格内换行、制表符或带引号转义的CSV。各列都保留为字符串;仅去掉末尾空白行,保留空单元格;中间的整行空白会提示列数错误。
- 这是教学小片段;若要接入真实数据或改动文件,先另行设计与核验,不要把示例当成现成完整应用。
Authors and sources
- Attribution
- 包子海梦 · AI辅助开发
- Authors and sources
- 提示集贡献者
Notices and modifications
新编写的通用教学示例,发布前仍需核对来源与运行效果。
Complete licence
MIT
MIT License Copyright (c) 2026 提示集贡献者 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Verification scope
教学代码已运行
已运行完整带许可的教学文件并核对输出;不代表生产部署、平台接入或全部边界情况都已验证。
2026-10-23 Node.js v24.19.0