最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#  .NET實(shí)現(xiàn)Excel到JSON的自動化轉(zhuǎn)換

 更新時間:2026年01月18日 09:05:13   作者:Eiceblue  
在 .NET 開發(fā)中,Excel 與 JSON 的格式轉(zhuǎn)換是數(shù)據(jù)交互的高頻需求,本文將詳細(xì)講解如何使用免費(fèi) 庫快速實(shí)現(xiàn) Excel 到 JSON 的自動化轉(zhuǎn)換,有需要的可以了解下

在 .NET 開發(fā)中,Excel 與 JSON 的格式轉(zhuǎn)換是數(shù)據(jù)交互的高頻需求。Excel 適合人工編輯與可視化展示,JSON 則是跨平臺 API 通信、系統(tǒng)集成的標(biāo)準(zhǔn)格式。本文將詳細(xì)講解如何使用免費(fèi) 庫快速實(shí)現(xiàn) Excel 到 JSON 的自動化轉(zhuǎn)換,無需依賴 Microsoft Office,附完整代碼與場景擴(kuò)展。

一、環(huán)境準(zhǔn)備

1. 安裝免費(fèi) .NET 庫

Free Spire.XLS for .NET 是一款輕量級的 Excel 處理庫,可通過NuGet 快速安裝,兩種方式任選:

方式1:NuGet包管理器界面

右鍵項(xiàng)目 → 「管理NuGet程序包」→ 搜索「FreeSpire.XLS」→ 點(diǎn)擊「安裝」

方式2:Package Manager Console 命令

打開控制臺,輸入以下命令并回車:

Install-Package FreeSpire.XLS

注意免費(fèi)版限制,適用于小型項(xiàng)目。

2. 額外依賴

JSON 序列化需借助 Newtonsoft.Json(Json.NET),同樣通過NuGet 安裝:

Install-Package Newtonsoft.Json

二、Excel 轉(zhuǎn) JSON 完整實(shí)現(xiàn)(C# 示例)

1. 需求場景說明

假設(shè)我們有一個用戶信息 Excel 文件(UserData.xlsx),結(jié)構(gòu)如下:

目標(biāo):讀取該 Excel 數(shù)據(jù),轉(zhuǎn)換為結(jié)構(gòu)化 JSON,保留數(shù)據(jù)類型一致性。

2. 完整代碼實(shí)現(xiàn)

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. 指定目標(biāo)工作表(按索引或名稱選擇)
                Worksheet worksheet = workbook.Worksheets[0]; // 第一個工作表(索引從0開始)

                // 3. 將工作表數(shù)據(jù)導(dǎo)出為DataTable(核心步驟)
                DataTable dataTable = worksheet.ExportDataTable();

                // 4. 自定義JSON序列化配置(優(yōu)化格式與數(shù)據(jù)類型)
                JsonSerializerSettings settings = new JsonSerializerSettings
                {
                    Formatting = Formatting.Indented, // 格式化輸出(換行+縮進(jìn))
                    DateFormatString = "yyyy-MM-dd", // 日期格式統(tǒng)一
                    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轉(zhuǎn)JSON成功!JSON文件路徑:" + jsonFilePath);
            }
            catch (Exception ex)
            {
                Console.WriteLine("轉(zhuǎn)換失?。? + ex.Message);
            }
        }
    }
}

3. 轉(zhuǎn)換結(jié)果示例

生成的 UserData.json 文件內(nèi)容如下,數(shù)據(jù)類型與 Excel 保持一致:

三、核心 API 與參數(shù)解析

1. Workbook 核心方法

  • LoadFromFile(string filePath):加載 Excel 文件,自動識別 .xls/.xlsx格式
  • Worksheets[index]:獲取工作表集合,索引從0開始

2. ExportDataTable 參數(shù)說明

Worksheet.ExportDataTable(): 將指定工作表導(dǎo)出為 DataTable。該方法提供了多組重載,適配不同的導(dǎo)出需求,具體參考其 API 說明

3. JSON 序列化配置優(yōu)化

  • Formatting.Indented:生成可讀性強(qiáng)的格式化 JSON,便于調(diào)試
  • DateFormatString:統(tǒng)一日期格式(避免默認(rèn)的 ISO 格式適配問題)
  • NullValueHandling.Ignore:過濾空值字段,精簡 JSON 體積

四、擴(kuò)展:多工作表批量轉(zhuǎn)換

若 Excel 包含多個工作表,可通過遍歷 Worksheets 集合實(shí)現(xiàn)批量轉(zhuǎn)換:

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 轉(zhuǎn)換為 JSON,無需依賴 Office 環(huán)境,代碼簡潔高效,適合各類.NET項(xiàng)目的數(shù)據(jù)交互場景。核心流程可概括為:加載 Excel 文件 → 讀取工作表 → 導(dǎo)出 DataTable → JSON 序列化 → 保存/傳輸,全程僅需5步即可完成。

通過本文的步驟指導(dǎo)與代碼示例,開發(fā)者可快速集成該功能,同時支持多工作表、特殊數(shù)據(jù)類型、空值處理等復(fù)雜場景,大幅提升數(shù)據(jù)轉(zhuǎn)換效率。

到此這篇關(guān)于C#  .NET實(shí)現(xiàn)Excel到JSON的自動化轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)C# Excel轉(zhuǎn)JSON內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#?窗口過程消息處理?WndProc的方法詳解

    C#?窗口過程消息處理?WndProc的方法詳解

    在WinForm中一般采用重寫WndProc的方法對窗口或控件接受到的指定消息進(jìn)行處理,本文給大家介紹C#窗口過程消息處理WndProc的方法詳解,感興趣的朋友一起看看吧
    2025-04-04
  • C#遍歷文件夾及子目錄下所有圖片

    C#遍歷文件夾及子目錄下所有圖片

    這篇文章主要為大家詳細(xì)介紹了C# 遍歷文件夾及子目錄下所有圖片的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • c# 實(shí)時曲線圖示例代碼

    c# 實(shí)時曲線圖示例代碼

    這篇文章主要介紹了如何用c# 實(shí)現(xiàn)實(shí)時曲線圖,文中講解非常細(xì)致,代碼幫助大家更好參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • C#之return語句的具體使用

    C#之return語句的具體使用

    return是C#中控制方法執(zhí)行流程和返回值的關(guān)鍵語句,理解其用法對于編寫清晰、可維護(hù)的代碼至關(guān)重要,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2026-01-01
  • winfrom 在業(yè)務(wù)層實(shí)現(xiàn)事務(wù)控制的小例子

    winfrom 在業(yè)務(wù)層實(shí)現(xiàn)事務(wù)控制的小例子

    winfrom 在業(yè)務(wù)層實(shí)現(xiàn)事務(wù)控制的小例子,需要的朋友可以參考一下
    2013-03-03
  • C#獲取根目錄實(shí)現(xiàn)方法匯總

    C#獲取根目錄實(shí)現(xiàn)方法匯總

    這篇文章主要介紹了C#獲取根目錄實(shí)現(xiàn)方法匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 詳解C#切換窗口

    詳解C#切換窗口

    最近項(xiàng)目不多忙,于是抽點(diǎn)時間鞏固下切換窗口問題,感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2016-04-04
  • 在C#中調(diào)用Windows防火墻界面的常見方式

    在C#中調(diào)用Windows防火墻界面的常見方式

    在 C# 中調(diào)用 Windows 防火墻界面(基礎(chǔ)設(shè)置或高級安全設(shè)置),可以使用 進(jìn)程啟動(Process.Start) 或 Win32 API 來實(shí)現(xiàn),所以本文給大家介紹了C#調(diào)用Windows防火墻界面的常見方式,需要的朋友可以參考下
    2025-11-11
  • C#實(shí)現(xiàn)加密的幾種方法介紹

    C#實(shí)現(xiàn)加密的幾種方法介紹

    這篇文章介紹了C#實(shí)現(xiàn)加密的幾種方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • c#獲取本機(jī)的IP地址的代碼

    c#獲取本機(jī)的IP地址的代碼

    c#獲取本機(jī)的IP地址的代碼,需要的朋友可以參考一下
    2013-03-03

最新評論

上蔡县| 嘉善县| 合作市| 万山特区| 永修县| 剑河县| 贡觉县| 临夏市| 垣曲县| 南昌市| 蕉岭县| 宝兴县| 年辖:市辖区| 云梦县| 红安县| 大石桥市| 双流县| 沭阳县| 隆化县| 孙吴县| 涡阳县| 上高县| 灌南县| 清苑县| 石泉县| 石河子市| 遵义县| 白朗县| 陆良县| 辰溪县| 广丰县| 海宁市| 阿拉善盟| 孟村| 邯郸县| 科技| 历史| 普安县| 绩溪县| 崇信县| 临朐县|