ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

3步让Excel也能解析JSON:VBA-JSON新手完整上手指南

3步让Excel也能解析JSON:VBA-JSON新手完整上手指南 3步让Excel也能解析JSONVBA-JSON新手完整上手指南【免费下载链接】VBA-JSONJSON conversion and parsing for VBA项目地址: https://gitcode.com/gh_mirrors/vb/VBA-JSON你是否经历过这样的崩溃瞬间接口把数据吐回来了打开一看是密密麻麻的JSON想让它变成Excel里清清楚楚的表格却只能手动复制、粘贴、逐段拆分在Excel、Access里和JSON数据较劲几乎是每个VBA开发者的必修苦功。VBA-JSON 就是来终结这种折磨的。它是面向 Excel、Access 等 Office 应用的 JSON解析 与 JSON转换 库——把JSON字符串变成VBA能直接访问的对象或者把字典、集合变回标准JSON字符串。一句话它是VBA世界的JSON翻译官让 Office 应用也能像现代语言一样优雅地处理数据。3秒看懂它的价值亮点速览亮点说明单文件集成整个库只有一个JsonConverter.bas导入即用零依赖部署解析生成双向打通ParseJson把 JSON 读进来ConvertToJson把数据写出去跨平台通用Windows 与 Mac 的 Excel、Access 等应用都能跑Office 2007嵌套结构轻松取数对象解析为字典、数组解析为集合深层数据随手取输出格式可定制既支持紧凑输出也支持带缩进的美化JSON三步上手从下载到跑通第一个例子整个上手过程快得超出预期三分钟即可搞定。第一步获取源码。打开命令行执行git clone https://gitcode.com/gh_mirrors/vb/VBA-JSON第二步导入模块。在 Excel/Access 中按Alt F11打开 VBA 编辑器菜单文件 → 导入文件选中项目里的JsonConverter.bas。第三步配置字典库。这是唯一的依赖千万别漏Windows 用户菜单工具 → 引用勾选Microsoft Scripting RuntimeMac 用户导入 VBA-Dictionary 项目的Dictionary.cls配置完先跑一个最小示例验证环境 ✅Sub 最小示例() 解析一条最简单的JSON Dim obj As Object Set obj JsonConverter.ParseJson({name:VBA,year:2024}) 用键名直接取值和操作字典一样简单 MsgBox obj(name) - obj(year) 弹出VBA - 2024 End Sub能弹出消息框说明你的 VBA 项目已经拥有完整的 JSON解析 能力了。实战演示把接口JSON变成Excel表格下面用一个完整例子串起解析→遍历→写入的闭环。假设订单接口返回了这样一串数据你想把它铺进工作表Sub 订单写入Excel() 模拟接口返回的JSON实际使用时可换成真实的响应文本 Dim resp As String resp {orders:[{id:1001,product:笔记本,price:5999}, _ {id:1002,product:鼠标,price:99}]} 1. 解析对象变字典(Dictionary)数组变集合(Collection) Dim data As Object Set data JsonConverter.ParseJson(resp) 2. 遍历orders数组逐行写入单元格 Dim row As Long Dim order As Object row 1 For Each order In data(orders) Cells(row, 1).Value order(id) Cells(row, 2).Value order(product) Cells(row, 3).Value order(price) row row 1 Next order MsgBox 成功写入 row - 1 条订单数据 End Sub运行后工作表第 1、2 行分别写入两条订单三列依次是订单号、商品名、价格。注意两个细节data(orders)返回的是集合所以能用For Each遍历每个元素又是字典继续用order(product)取值——这种层层下钻的取值方式正是 JSON解析 最顺手的地方。进阶技巧老用户也能学到的新招技巧一一行代码输出美化版JSON。调试或导出时紧凑的 JSON 难以阅读给ConvertToJson传个Whitespace参数即可Debug.Print JsonConverter.ConvertToJson(obj, Whitespace:2) 缩进2个空格 Debug.Print JsonConverter.ConvertToJson(obj, Whitespace:vbTab) 用Tab缩进技巧二大数字自动转字符串防止精度丢失。VBA 的 Double 只能存 15 位有效数字身份证号、订单ID一旦超过 15 位就被截断。VBA-JSON 默认会把这类超长纯数字解析成字符串UseDoubleForLargeNumbers默认为 False刚好避开这个坑只有确实需要数字类型时才手动打开该选项。技巧三读-改-写闭环处理完再导回去。解析后的字典可以直接改值改完再ConvertToJson输出非常适合配置管理类场景Dim cfg As Object Set cfg JsonConverter.ParseJson(旧配置文本) cfg(theme) dark 改一个字段 Dim 新配置 As String 新配置 JsonConverter.ConvertToJson(cfg, Whitespace:2) 再生成JSON文本常见报错速查新手最容易踩的4个坑报错或现象原因解决办法编译错误用户定义类型未定义没配置字典库按上文第三步勾选 Scripting Runtime 或导入 Dictionary.cls运行时错误 10001JSON parse errorJSON 文本不合法检查引号是否成对、键名是否加引号、字符串内的引号是否转义为身份证号/长ID变科学计数或尾数丢失超 15 位数字被当数值处理保持默认自动转字符串或解析前就把长数字写成带引号的字符串数组取数下标报错或取错元素集合下标从 1 开始不是 0访问data(list)(2)取的才是第 2 个元素延伸生态它还能和谁搭档VBA-JSON 自带一套测试用例specs/Specs.bas与配套的VBA-JSON - Specs.xlsm改完代码跑一遍就能自检也是学习源码的好材料。实际项目中它常与 VBA-Web负责发 HTTP 请求搭配组成完整的 API 客户端在 Mac 上则依赖 VBA-Dictionary 提供字典能力。它的前身是 vba-json如今已融入 VBA-Web 生态持续迭代处理性能和多平台兼容性不断提升。现在就开始你的第一步行动回顾一下VBA-JSON 用单个模块文件为 Excel、Access 等 Office 应用补齐了 JSON解析 和 JSON转换 两块短板三步完成集成两个函数覆盖日常九成需求剩下细节用三个配置项就能微调。JSON 解析再也不是 VBA 的痛点而是顺手拈来的基本功。现在立刻动手克隆仓库 → 导入JsonConverter.bas→ 勾选字典引用 → 把上面的最小示例敲一遍。五分钟之后你就能在自己的表里解析第一份 JSON 数据了 【免费下载链接】VBA-JSONJSON conversion and parsing for VBA项目地址: https://gitcode.com/gh_mirrors/vb/VBA-JSON创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表