使用 VBA 代码将 Excel 转换为 JSON

17 Mar 2025 | 6 分钟阅读

除了下载 Excel 到 JSON 转换软件,您还可以使用 VBA 代码编辑器将 Excel 数据转换为 JSON 格式。您可以在 VBA 编辑器中创建自己的自定义代码并运行它来完成任务。

VBA 代码编辑器是 Excel 的一个开发者工具或内置功能。当您下载 MS Excel 时,它会默认随附。在 VBA 代码编辑器中,您可以编写自己的代码并执行特定任务。如果您擅长编码,那么这是一个很好的方法。

通过将 Excel 列映射到 JSON 对象键来制作 Excel 到 JSON 的转换代码。然后执行代码将数据转换为 JSON 格式。了解 Visual Basic 编码的人可以使用此工具。

为什么选择 VBA 代码编辑器?

如果您擅长编码并创建逻辑代码,那么为什么还要使用工具。在 VBA 代码编辑器中创建自己的自定义代码,并通过运行该代码将任何数量的 Excel 文档转换为 JSON 格式。它不需要下载或互联网连接,什么都不需要。

您无需明确下载任何工具即可将 Excel 数据转换为 JSON 格式。而您可以使用 Excel VBA 代码编辑器在不下载任何软件的情况下完成此操作。如果您擅长编码,那么这是一个很好的方法。您甚至不需要安装 VBA 编辑器,因为它随 Excel 一起提供。

提示:您的 Excel 数据必须有列名,因为第一行始终被视为标题。

打开 VBA 编辑器

  1. 您可以从“开发工具”选项卡在 Excel 中打开 VBA 代码编辑器。
  2. 如果您的 Excel 功能区中没有“开发工具”选项卡,请右键单击功能区并从列表中选择“开发工具”选项卡来自定义功能区。
  3. 然后,单击第一个选项 **Visual Basic** 打开 VBA 代码编辑器。
  4. 在 VBA 代码编辑器中,在当前打开的 Excel 文件下创建一个新模块。
  5. 在此处编写 Excel 到 JSON 的转换代码。

VBA 代码

以下是完整的 Excel 文件数据转换为 JSON 格式的代码。复制以下代码并将其粘贴到您相应的 VBA 代码编辑器中。

在此 VBA 代码中,我们定义了一个名为 **ExcelToJSON** 的函数,该函数稍后将在 Excel 文件中使用,用于将 Excel 转换为 JSON。让我们看看它将如何执行。

语法

此函数将接受您希望转换为 JSON 格式的 Excel 单元格范围,例如 A1:F9。

将 Excel 数据转换为 JSON 格式

现在,我们将使用上面代码创建的 **ExcelToJSON()** 函数将 Excel 数据转换为 JSON 格式。请记住一件事 - 此函数仅为此特定文件创建。它不适用于其他 Excel 文件。

  1. 返回 Excel 文件,并在您希望放置转换后的 JSON 结果的 Excel 单元格中编写以下 ROUND() 公式。例如:
    =ExcelToJSON(A1:D3)
    Convert the Excel to JSON using VBA code
    目前,我们只将前两行 Excel 和四列的数据转换为 JSON 格式。
  2. 按 **Enter** 键获取结果,并看到数据已成功转换为 JSON 格式。
    Convert the Excel to JSON using VBA code
    同样,您可以通过增加 Excel 单元格的范围来使用此函数进行更多数据转换。从此处复制这些转换后的 JSON 数据并将其存储在简单的 Word 文件中。

代码解释

代码 1

首先,此代码用于验证所选范围必须至少有两列才能进行 Excel 到 JSON 的转换。如果没有,您将退出此函数。

代码 2

接下来,我们创建了两个变量:dataLoop 和 headerLoop。dataLoop 变量用于 Excel 文件中存储的 Excel 数据,headerLoop 用于列标题。转换过程中将使用这两个变量。

代码 3

在这里,我们创建了一个名为 **colCount** 的变量。我们使用此代码查找要将数据转换为 Excel 文件中 JSON 格式的目标列数。

代码 4

现在,此代码开始从 Excel 文件创建 JSON 数据。在这里,dataLoop 变量在 for 循环中使用,从 1 到选定行的末尾。Excel 文件数据的第一行将被跳过,因为在转换 Excel 数据到 JSON 时,第一行始终被视为标题。

JSON 格式的数据将用花括号 {} 括起来。

代码 5

一个循环将遍历每一列,并将列标题与行数据合并。每个值将用逗号分隔。而这段代码 (jsonData = Left(jsonData, Len(jsonData) - 1)) 将跳过每行最后一个值后的逗号。

在 JSON 文件格式中,每一行数据都将用花括号 {} 括起来。

代码 5

所有连接的数据都将存储在名为 **JSON** 的变量中,并且此完整数据将放在方括号 [] 中。转换后的 JSON 数据将在用户使用此用户定义的 ExcelToJSON() 函数的 Excel 单元格中显示给用户。