Excel处理JSON不再难!灵析表格7大JSON函数深度解析,一个公式搞定API数据

还在用VBA写JSON解析?还在复制粘贴到在线工具转换?灵析表格(Excel公式盒子)内置7个JSON专业函数,让你在单元格里直接完成JSON与表格的双向转换、数据搜索、格式互转,打通Excel与API数据交互的最后一公里。


背景:Excel用户的JSON困境

做过数据对接的人都遇到过这个场景:调一个API接口,返回一大串JSON数据,需要拆解后填进Excel表格。传统方案要么写VBA脚本(门槛高、维护难),要么借助Power Query(操作繁琐、不够灵活),要么复制到在线JSON格式化工具手动拆(效率低、易出错)。

反过来也一样:老板要你把Excel里的数据转成JSON发给开发同事,你发现Excel内置函数里压根没有这个能力。

灵析表格(官网 http://calcx.cn )的JSON数据处理模块,提供了7个专业函数,覆盖了JSON与Excel表格之间几乎所有常见的转换需求。这篇文章从功能定位、实战场景、选型对比三个维度,逐一拆解这7个函数。


JSON函数全景:7把利器各司其职

先用一张表建立全局认知:

函数名中文名核心能力数据方向
json_TableToJson表格转JsonExcel表格区域 → JSON数组字符串表格 → JSON
json_JsonToTableJson转表格JSON对象数组 → Excel表格JSON → 表格
json_TableToJson_proJson转表格 Pro复杂嵌套JSON → Excel表格(递归解析)JSON → 表格
json_ObjectToKV对象转键值对JSON对象 → 键值对二维表JSON → 表格
json_ArrayToTable数组转表格JSON数组 → 横向/纵向展开JSON → 表格
json_Search搜索在JSON中搜索值并返回路径JSON内检索
json_XmlToJsonXML转JSONXML字符串/文件 → JSONXML → JSON

这7个函数形成了一个完整的数据处理闭环:导入(JsonToTable系列)→ 拆解(ObjectToKV/ArrayToTable)→ 检索(Search)→ 导出(TableToJson),加上跨格式的XmlToJson作为补充。


数据导出篇:表格转JSON

json_TableToJson —— 把Excel区域变成JSON数组

这个函数解决的是一个高频需求:把Excel里的结构化数据转成JSON,用于API请求体、配置文件或数据交换。

函数签名:

=json_TableToJson(tableData, [filepath])
参数类型必填说明
tableDataObject[,]包含标题行的二维表格数据区域
filepathString为空时返回JSON字符串,非空时写入文件

用法一:返回JSON字符串

假设A1:C3区域有如下数据:

姓名年龄城市
张三30北京
李四25上海

公式:

=json_TableToJson(A1:C3, "")

输出:

[{"姓名":"张三","年龄":30,"城市":"北京"},{"姓名":"李四","年龄":25,"城市":"上海"}]

用法二:直接写入文件

=json_TableToJson(A1:C3, "D:\data\output.json")

返回"写入完成",文件直接落盘。

这个函数有几个设计细节值得注意:第一行自动作为JSON键名,数字格式自动识别(不会变成文本),空值转为null而不是空字符串。结合Excel的批量公式或宏,可以一次性导出多个JSON文件,实现数据导出自动化。


数据导入篇:JSON转表格

json_JsonToTable —— 标准JSON数组的表格化

这是json_TableToJson的反向操作,把JSON数组对象转成Excel表格。

函数签名:

=json_JsonToTable(jsonInput, [includeHeaders])
参数类型必填说明
jsonInputString文件路径或原始JSON文本
includeHeadersBoolean是否包含字段标题行,默认TRUE

基础用法:

A1单元格中存放以下JSON:

[{"员工编号":"E1001","姓名":"张三","部门":"技术部"},{"员工编号":"E1002","姓名":"李四","部门":"市场部"}]

公式:

=json_JsonToTable(A1)

输出效果:

员工编号姓名部门
E1001张三技术部
E1002李四市场部

类型转换规则:

JSON类型Excel结果
string文本
number数值
booleanTRUE/FALSE
object转为字符串
null空单元格

需要注意的限制:此函数仅支持扁平结构的对象数组,不支持嵌套对象(如{"a":{"b":1}})和数组类型的值(如{"tags":["A","B"]})。如果JSON结构复杂,需要用到下面的Pro版本。

json_TableToJson_pro —— 复杂嵌套JSON的递归解析

这个名字容易产生误解——它实际上是JSON转表格的增强版,专门处理json_JsonToTable搞不定的多层嵌套结构。

函数签名:

=json_TableToJson_pro(jsonInput)
参数类型必填说明
jsonInputStringJSON字符串或文件路径

处理多层嵌套对象:

=json_TableToJson_pro("{'company':'TechCorp','departments':[{'name':'研发部','employees':[{'id':1001}]}]}")

输出效果:

company TechCorp departments name 研发部 employees id 1001

处理混合类型数组:

=json_TableToJson_pro("{'items':[{'product':'笔记本'},'配件',null]}")

输出效果:

items product 笔记本 配件 null

它的转换规则很清晰:对象属性横向展开为键值对,数组元素纵向排列并缩进显示,空值自动转为空单元格。这个函数最大的价值在于递归解析——无论JSON嵌套多深,都能展开成可读的表格结构。

与http_Get配合实现API数据实时解析:

=json_TableToJson_pro(http_Get("https://api.example.com/data"))

一个公式完成"请求API → 解析JSON → 展开到表格"的全流程。


数据拆解篇:对象与数组处理

json_ObjectToKV —— 把JSON对象拆成键值对

当API返回的是一个JSON对象(而不是数组),你需要把每个字段单独提取出来时,这个函数就派上用场了。

函数签名:

=json_ObjectToKV(jsonObject)
参数类型必填说明
jsonObjectString合法的JSON对象字符串

基础用法:

=json_ObjectToKV("{""部门"":""市场部"",""人数"":12,""负责人"":""王强""}")

输出效果:

部门市场部
人数12
负责人王强

配合VLOOKUP实现属性查找:

=VLOOKUP("负责人", json_ObjectToKV(A1), 2, FALSE)

这个组合的妙处在于:不需要知道JSON里有哪些字段,先用json_ObjectToKV展开成两列表格,再用VLOOKUP按需取值。对于字段不固定的API响应特别实用。

json_ArrayToTable —— JSON数组的一维展开

这个函数处理的是纯粹的JSON数组(不是对象数组),把它横向或纵向展开到Excel单元格中。

函数签名:

=json_ArrayToTable(jsonArray, [horizontal])
参数类型必填说明
jsonArrayString有效的JSON数组字符串
horizontalBoolean输出方向,TRUE横向(默认),FALSE纵向

横向展开:

=json_ArrayToTable("[1,2,3]", TRUE)

输出:1 | 2 | 3(同一行三个单元格)

纵向展开:

=json_ArrayToTable("[1,2,3]", FALSE)

输出:

1 2 3

字符串数组:

=json_ArrayToTable("[\"苹果\",\"香蕉\",\"梨\"]", TRUE)

输出:苹果 | 香蕉 | 梨

纵向展开后配合数据透视表,可以快速统计数组元素的频次分布。对于从API返回的标签列表、ID列表等一维数据的处理,这个函数比手动分列高效得多。


数据检索篇:JSON搜索

json_Search —— 在JSON里搜索并返回路径

这是整个JSON函数集中设计得最有"查询语言"味道的一个。它递归遍历JSON的所有节点,找到匹配的值,并返回值和它在JSON中的完整路径。

函数签名:

=json_Search(json, searchValue, [fuzzyMatch])
参数类型必填说明
jsonString合法JSON字符串
searchValueString要查找的内容
fuzzyMatchBoolean是否模糊匹配,默认TRUE

模糊搜索:

=json_Search("{""user"":{""name"":""张三"",""city"":""北京""}}", "张", TRUE)

输出:

路径
张三user.name

精确匹配:

=json_Search("{""user"":{""name"":""张三"",""city"":""北京""}}", "北京", FALSE)

输出:

路径
北京user.city

取第一个匹配项的路径:

=INDEX(json_Search(A1, "关键字", TRUE), 1, 2)

模糊匹配使用的是Contains逻辑(包含即匹配),精确匹配使用Equals逻辑(完全相等)。返回的路径用点号分隔(如user.name),可以直接用于后续的数据定位和提取。在处理大型JSON响应时,这个函数能帮你快速锁定目标数据在结构中的位置,省去人工翻找的时间。


跨格式篇:XML转JSON

json_XmlToJson —— XML数据的JSON化桥梁

很多老旧系统和配置文件仍在使用XML格式。这个函数把XML字符串或文件转换为JSON,为后续的JSON处理铺路。

函数签名:

=json_XmlToJson(xmlOrPath)
参数类型必填说明
xmlOrPathStringXML字符串或文件路径

XML字符串转JSON:

=json_XmlToJson("<root><name>张三</name><age>25</age></root>")

输出:

{"root":{"name":"张三","age":"25"}}

XML文件转JSON:

=json_XmlToJson("D:\data\config.xml")

输出:

{"config":{"setting":"value","enabled":"true"}}

转换规则:

  • XML属性以@前缀表示(如<node id="1">转为{"node":{"@id":"1"}}
  • 多个同名子节点自动转为JSON数组
  • 空节点转为空字符串
  • 底层使用Newtonsoft.Json序列化,兼容性好

典型的工作流是:先用json_XmlToJson把XML转成JSON,再用json_TableToJson_projson_JsonToTable展开成表格。两步完成XML到Excel的数据迁移。


实战演练:函数组合应用场景

场景一:API数据导入分析全流程

调用一个天气API,返回的JSON包含多层嵌套的城市信息和预报数据。完整流程只需两个公式:

=json_TableToJson_pro(http_Get("https://api.weather.com/v1/forecast"))

一步到位:请求API → 解析嵌套JSON → 展开到表格。如果只需要提取某个城市的数据:

=VLOOKUP("北京", json_TableToJson_pro(http_Get(A1)), 2, FALSE)

场景二:Excel数据批量导出为API请求体

需要把员工表批量转成JSON发送给接口。先整理好表格区域(第一行为字段名),然后:

=json_TableToJson(A1:D100, "D:\export\employees.json")

一条公式生成完整的JSON文件,直接作为API请求体使用。

场景三:配置文件格式迁移

有个XML配置文件需要导入Excel分析,但Excel不原生支持XML解析。两步搞定:

=json_XmlToJson("D:\config\settings.xml")

把XML转成JSON字符串后:

=json_ObjectToKV(A1)

展开为键值对表格,直接在Excel中查看和修改。

场景四:大型JSON响应中定位数据

API返回了几百个字段的大型JSON,手动查找某个值的位置非常低效:

=json_Search(A1, "订单号", TRUE)

立刻得到值和路径,再用路径信息做后续提取。


选型指南:7个函数怎么选

根据数据形态和处理需求,选择合适的函数:

你的需求推荐函数理由
Excel表格转JSONjson_TableToJson原生支持,可写文件
扁平JSON转表格json_JsonToTable轻量快速,支持标题行控制
嵌套JSON转表格json_TableToJson_pro递归解析,无层数限制
JSON对象拆键值对json_ObjectToKV两列表格,配合VLOOKUP
JSON数组展开json_ArrayToTable横纵可控,适合一维数据
JSON内搜索json_Search模糊/精确双模式,返回路径
XML转JSONjson_XmlToJson桥接XML与JSON生态

一个简单的判断逻辑:先看数据方向(表格→JSON还是JSON→表格),再看数据结构(扁平还是嵌套),最后看是否需要检索或跨格式转换。


快速上手:安装与使用

灵析表格兼容Windows 7/8/10/11,同时支持WPS和Office的32位和64位版本。安装步骤:

  1. 从官网 http://calcx.cn 下载Excel公式盒子管理器
  2. 退出所有WPS和Office程序
  3. 运行管理器,选择语言版本(中文/英文)和系统位数
  4. 点击"一键安装"按钮,等待自动配置完成

安装验证:在单元格中输入=get_机器码(),返回机器码即表示安装成功。

JSON系列函数属于专业版(Pro)功能。安装后默认为免费版,可使用大部分函数,专业版函数需要激活对应会员等级。

所有JSON函数支持中英文双版本函数名,例如json_TableToJsonjson_表格转Json等价,可根据团队习惯选择。


写在最后

Excel缺少JSON处理能力,本质上是办公软件与开发者生态之间的断层。灵析表格的7个JSON函数,用最Excel化的方式(单元格公式)填补了这个断层。不需要写VBA,不需要装插件,不需要切换工具——一个公式就能完成JSON的生成、解析、搜索和格式转换。

对于经常与API打交道的运营、产品、数据分析师来说,这套函数库的价值在于:把JSON数据处理从"工程师的活"变成了"表格用户的活"

官网地址:http://calcx.cn

函数文档:http://calcx.cn (导航 → 函数文档 → JSON数据处理)


本文基于灵析表格官方文档撰写,函数参数和示例均来自官网最新版本文档。