C#  .NET实现Excel到JSON的自动化转换

 更新时间:2026年01月18日 09:05:13   作者:Eiceblue  
在 .NET 开发中,Excel 与 JSON 的格式转换是数据交互的高频需求,本文将详细讲解如何使用免费 库快速实现 Excel 到 JSON 的自动化转换,有需要的可以了解下

在 .NET 开发中,Excel 与 JSON 的格式转换是数据交互的高频需求。Excel 适合人工编辑与可视化展示,JSON 则是跨平台 API 通信、系统集成的标准格式。本文将详细讲解如何使用免费 库快速实现 Excel 到 JSON 的自动化转换,无需依赖 Microsoft Office,附完整代码与场景扩展。

一、环境准备

1. 安装免费 .NET 库

Free Spire.XLS for .NET 是一款轻量级的 Excel 处理库,可通过NuGet 快速安装,两种方式任选:

方式1:NuGet包管理器界面

右键项目 → 「管理NuGet程序包」→ 搜索「FreeSpire.XLS」→ 点击「安装」

方式2:Package Manager Console 命令

打开控制台,输入以下命令并回车:

Install-Package FreeSpire.XLS

注意免费版限制,适用于小型项目。

2. 额外依赖

JSON 序列化需借助 Newtonsoft.Json(Json.NET),同样通过NuGet 安装:

Install-Package Newtonsoft.Json

二、Excel 转 JSON 完整实现(C# 示例)

1. 需求场景说明

假设我们有一个用户信息 Excel 文件(UserData.xlsx),结构如下:

目标:读取该 Excel 数据,转换为结构化 JSON,保留数据类型一致性。

2. 完整代码实现

using System;
using System.Data;
using Newtonsoft.Json;
using Spire.Xls;

namespace ExcelToJsonDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // 1. 加载Excel文件
                string excelFilePath = "UserData.xlsx";
                Workbook workbook = new Workbook();
                workbook.LoadFromFile(excelFilePath); // 无需Office依赖,直接加载文件

                // 2. 指定目标工作表(按索引或名称选择)
                Worksheet worksheet = workbook.Worksheets[0]; // 第一个工作表(索引从0开始)

                // 3. 将工作表数据导出为DataTable(核心步骤)
                DataTable dataTable = worksheet.ExportDataTable();

                // 4. 自定义JSON序列化配置(优化格式与数据类型)
                JsonSerializerSettings settings = new JsonSerializerSettings
                {
                    Formatting = Formatting.Indented, // 格式化输出(换行+缩进)
                    DateFormatString = "yyyy-MM-dd", // 日期格式统一
                    NullValueHandling = NullValueHandling.Ignore // 忽略空值字段
                };

                // 5. 将DataTable序列化为JSON字符串
                string jsonResult = JsonConvert.SerializeObject(dataTable, settings);

                // 6. 保存JSON文件(或直接用于API传输)
                string jsonFilePath = @"E:\Files\UserData.json";
                System.IO.File.WriteAllText(jsonFilePath, jsonResult, System.Text.Encoding.UTF8);

                Console.WriteLine("Excel转JSON成功!JSON文件路径:" + jsonFilePath);
            }
            catch (Exception ex)
            {
                Console.WriteLine("转换失败:" + ex.Message);
            }
        }
    }
}

3. 转换结果示例

生成的 UserData.json 文件内容如下,数据类型与 Excel 保持一致:

三、核心 API 与参数解析

1. Workbook 核心方法

  • LoadFromFile(string filePath):加载 Excel 文件,自动识别 .xls/.xlsx格式
  • Worksheets[index]:获取工作表集合,索引从0开始

2. ExportDataTable 参数说明

Worksheet.ExportDataTable(): 将指定工作表导出为 DataTable。该方法提供了多组重载,适配不同的导出需求,具体参考其 API 说明

3. JSON 序列化配置优化

  • Formatting.Indented:生成可读性强的格式化 JSON,便于调试
  • DateFormatString:统一日期格式(避免默认的 ISO 格式适配问题)
  • NullValueHandling.Ignore:过滤空值字段,精简 JSON 体积

四、扩展:多工作表批量转换

若 Excel 包含多个工作表,可通过遍历 Worksheets 集合实现批量转换:

foreach (Worksheet sheet in workbook.Worksheets)
{
    if (sheet.Visibility == WorksheetVisibility.Hidden) // 只处理可见工作表
    {
        DataTable dt = sheet.ExportDataTable();
        string json = JsonConvert.SerializeObject(dt, settings);
        // 按工作表名称保存JSON文件
        System.IO.File.WriteAllText($@"E:\{sheet.Name}.json", json);
    }
}

以上示例演示了如何通过 C# 将 Excel 转换为 JSON,无需依赖 Office 环境,代码简洁高效,适合各类.NET项目的数据交互场景。核心流程可概括为:加载 Excel 文件 → 读取工作表 → 导出 DataTable → JSON 序列化 → 保存/传输,全程仅需5步即可完成。

通过本文的步骤指导与代码示例,开发者可快速集成该功能,同时支持多工作表、特殊数据类型、空值处理等复杂场景,大幅提升数据转换效率。

到此这篇关于C#  .NET实现Excel到JSON的自动化转换的文章就介绍到这了,更多相关C# Excel转JSON内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中的集合用法分析

    C#中的集合用法分析

    这篇文章主要介绍了C#中的集合用法,实例形式分析了集合元素的定义、赋值、插入、移除等操作,需要的朋友可以参考下
    2014-10-10
  • C#访问PostGreSQL数据库的方法

    C#访问PostGreSQL数据库的方法

    这次的项目中的一个环节要求我把PostGreSQL数据取出来,然后放到SqlServer里,再去处理分析。
    2013-04-04
  • C#异常处理的最佳实践与内存模型深度剖析

    C#异常处理的最佳实践与内存模型深度剖析

    C#提供了强大的异常处理机制,它帮助开发者捕获并响应运行时的错误,然而,异常的处理不仅仅是捕获错误,它还需要合理的策略来确保代码的性能、可维护性和可靠性,本文将深入探讨C#异常处理的最佳实践,如何有效记录日志,避免性能损失,并对C#的内存模型做详细解析
    2025-01-01
  • C# WPF实现播放音频文件的示例详解

    C# WPF实现播放音频文件的示例详解

    这篇文章主要为大家详细介绍了利用C# WPF实现播放音频文件的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • C#获取任务栏显示进程的方法

    C#获取任务栏显示进程的方法

    这篇文章主要介绍了C#获取任务栏显示进程的方法,涉及C#针对进程操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • 详解C#如何在不同工作簿之间复制选定单元格区域

    详解C#如何在不同工作簿之间复制选定单元格区域

    处理Excel文档时,我们经常需要将数据整合到一个工作表以便于我们进行管理或数据对比。本文将演示如何通过编程方式将选定的单元格区域从一个工作簿复制到另一个工作簿
    2023-02-02
  • c# 备忘录模式

    c# 备忘录模式

    备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在这个对象之外的地方保存这个状态,这样以后就可将该对象恢复到原来保存的状态了
    2012-10-10
  • 在unity脚本中控制Inspector面板的参数操作

    在unity脚本中控制Inspector面板的参数操作

    这篇文章主要介绍了在unity脚本中控制Inspector面板的参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C#中的协变与逆变深入讲解

    C#中的协变与逆变深入讲解

    这篇文章主要给大家介绍了关于C#中协变与逆变的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • C#中fixed关键字的作用总结

    C#中fixed关键字的作用总结

    以下是对C#中fixed关键字的作用进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-09-09

最新评论