小布工坊.
← 回到资源库

资源详情 · 实用工具

把一张小表格变成 JSON 数据

用第一行作表头,把制表符分隔的几行文字转换为数据对象。

资源正文、示例和许可证保留原文。代码仅展示,不会在线执行或调用AI。

资源详情

初步理解表格与 JSON 的对应关系。示例是物品清单,不读取 Excel 文件,不联网,也不调用 AI。

使用前准备

适用平台
Windows · macOS · Linux
内容更新
  • 先安装 Node.js 24,并准备可以保存纯文本的编辑器。
  • 把资源保存为 table-json.mjs;首次运行只用代码里自带的示例文字。
node table-json.mjs

需先安装 Node.js。无需 npm install;本例不联网、不读写用户文件。

常见卡点

  • Windows 开启文件扩展名显示,避免保存成 .mjs.txt;教程的文件夹开终端步骤以 Windows 为例。
  • 仅处理简单制表符表格,不支持单元格内换行、制表符或带引号转义的CSV。各列都保留为字符串;仅去掉末尾空白行,保留空单元格;中间的整行空白会提示列数错误。
官方网站与安装说明 ↗

完整正文

// 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)));

使用教程

先运行资源中自带的小样本,看到结果以后,再试着改一两个值。

  1. 下载并保存示例

    下载代码,保存为 table-json.mjs。Windows 在资源管理器打开“查看 → 显示 → 文件扩展名”,确认没有多出 .txt。

  2. 运行一次

    在这个文件夹的地址栏输入 powershell 并回车,打开终端后输入下面的命令。若提示找不到 node,安装 Node.js 后重新打开终端。

  3. 对照结果再改一个值

    核对两个物品和数量。先修改示例单元格;代码里的 \t 表示制表符,\n 表示换行。

保存文件名
table-json.mjs
运行环境
先安装 Node.js 24,并准备记事本或代码编辑器。本站实际核验版本为 v24.19.0。
依赖与费用
无需账号或API密钥;本例不联网,不读写用户文件,不产生模型接口费用。设备和电力仍有成本。

运行命令

node table-json.mjs

预期输出

[{"物品":"笔记本","数量":"2"},{"物品":"铅笔","数量":"3"}]

本地核验

2026-10-23 · Node.js v24.19.0

本站本地运行了下载时附带完整许可的原样示例,核对演示输出与注明的边界输入;不代表所有设备或生产场景验证。

适合用在哪里

  • 第一次保存并运行 JavaScript 小例子
  • 把一张小表格变成 JSON 数据

注意事项

  • 仅处理简单制表符表格,不支持单元格内换行、制表符或带引号转义的CSV。各列都保留为字符串;仅去掉末尾空白行,保留空单元格;中间的整行空白会提示列数错误。
  • 这是教学小片段;若要接入真实数据或改动文件,先另行设计与核验,不要把示例当成现成完整应用。

原作者与来源

署名
包子海梦 · AI辅助开发
原作者与来源
提示集贡献者

声明与修改说明

新编写的通用教学示例,发布前仍需核对来源与运行效果。

完整许可证

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.

验证范围

教学代码已运行

已运行完整带许可的教学文件并核对输出;不代表生产部署、平台接入或全部边界情况都已验证。

2026-10-23 Node.js v24.19.0