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

C#實(shí)現(xiàn)將Excel表格轉(zhuǎn)換為DataTable

 更新時(shí)間:2026年01月21日 15:29:11   作者:m5655bj  
在企業(yè)級(jí)開(kāi)發(fā)中,Excel 與數(shù)據(jù)庫(kù) / 內(nèi)存數(shù)據(jù)集的互轉(zhuǎn)是高頻需求,DataTable 作為.NET 中通用的內(nèi)存數(shù)據(jù)結(jié)構(gòu),常被用于承接 Excel 數(shù)據(jù)進(jìn)行后續(xù)處理,下面我們就來(lái)看看如何使用C#實(shí)現(xiàn)二者間的轉(zhuǎn)換吧

在企業(yè)級(jí)開(kāi)發(fā)中,Excel 與數(shù)據(jù)庫(kù) / 內(nèi)存數(shù)據(jù)集的互轉(zhuǎn)是高頻需求,DataTable 作為.NET 中通用的內(nèi)存數(shù)據(jù)結(jié)構(gòu),常被用于承接 Excel 數(shù)據(jù)進(jìn)行后續(xù)處理(如數(shù)據(jù)驗(yàn)證、入庫(kù)、展示)。本文將分享如何使用免費(fèi)庫(kù) Free Spire.XLS for .NET 實(shí)現(xiàn) Excel 文件到 DataTable 的高效轉(zhuǎn)換。

一、免費(fèi)庫(kù)介紹與安裝

1. Free Spire.XLS for .NET 核心優(yōu)勢(shì)

內(nèi)置 ExportDataTable 方法,無(wú)需手動(dòng)遍歷單元格,代碼量減少80%;

無(wú)需依賴(lài) Microsoft Office/Excel 客戶端,跨平臺(tái)部署更便捷;

支持 .xls、.xlsx 等主流 Excel 格式,API封裝直觀,新手易上手。

注意: 免費(fèi)版有一定數(shù)據(jù)量限制,適合小型項(xiàng)目

2. 安裝 Free Spire.XLS

推薦通過(guò)NuGet快速安裝,步驟如下:

  • 右鍵項(xiàng)目 → 管理NuGet程序包;
  • 搜索“Free Spire.XLS”并安裝最新穩(wěn)定版;

或在 Package Manager Console 執(zhí)行命令:

Install-Package FreeSpire.XLS

二、核心實(shí)現(xiàn):Excel 轉(zhuǎn) DataTable

1. 將指定工作表轉(zhuǎn)換為 DataTable 內(nèi)存數(shù)據(jù)集

以下代碼實(shí)現(xiàn)最核心的轉(zhuǎn)換邏輯,包含 “加載 Excel→選取目標(biāo)工作表→核心數(shù)據(jù)轉(zhuǎn)DataTable→驗(yàn)證并輸出結(jié)果” 完整流程:

using Spire.Xls;
using System;
using System.Data;

namespace ExcelToDataTableDemo
{
    class Program
    {
        static void Main()
        {
            // 定義Excel文件路徑
            string excelFilePath = "Sample.xlsx";

            // 1. 初始化Workbook并加載Excel文件
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(excelFilePath);

            // 2. 獲取第一個(gè)工作表(索引從0開(kāi)始)
            Worksheet sheet = workbook.Worksheets[0];

            // 3. 核心:調(diào)用內(nèi)置ExportDataTable方法轉(zhuǎn)換
            // 參數(shù)1:要導(dǎo)出的單元格范圍(AllocatedRange表示工作表的有效數(shù)據(jù)范圍)
            // 參數(shù)2:是否將第一行作為DataTable的列名
            DataTable dataTable = sheet.ExportDataTable(sheet.AllocatedRange, true);

            // 4. 驗(yàn)證轉(zhuǎn)換結(jié)果:輸出數(shù)據(jù)信息
            Console.WriteLine("=== Excel轉(zhuǎn)DataTable結(jié)果 ===");
            // 輸出總行數(shù)(排除表頭)
            Console.WriteLine($"數(shù)據(jù)總行數(shù):{dataTable.Rows.Count}");
            // 輸出列名
            Console.Write("列名:");
            foreach (DataColumn col in dataTable.Columns)
            {
                Console.Write(col.ColumnName + "\t");
            }
            Console.WriteLine("\n=== 數(shù)據(jù)內(nèi)容 ===");
            // 輸出所有行數(shù)據(jù)
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var cellValue in row.ItemArray)
                {
                    Console.Write(cellValue + "\t");
                }
                Console.WriteLine();
            }
        }
    }
}

2. 進(jìn)階用法:自定義轉(zhuǎn)換范圍與參數(shù)

ExportDataTable 提供了多個(gè)重載方法,可滿足“指定轉(zhuǎn)換范圍、是否導(dǎo)出空值”等個(gè)性化需求,以下是常用進(jìn)階場(chǎng)景:

場(chǎng)景1:只轉(zhuǎn)換指定行/列范圍(如第2-10行、第1-3列)

// 獲取指定范圍的單元格(行/列索引均從1開(kāi)始)
CellRange targetRange = sheet.Range["A2:C10"];
// 轉(zhuǎn)換指定范圍,且不將第一行作為列名(因范圍從第2行開(kāi)始)
DataTable dataTable = sheet.ExportDataTable(targetRange, false);

場(chǎng)景2:導(dǎo)出時(shí)計(jì)算公式值

// 重載方法:第三個(gè)參數(shù)控制是否計(jì)算公式值。
// 參數(shù)說(shuō)明:
// range:轉(zhuǎn)換范圍
// exportColumnNames:是否將第一行作為列名
// computedFormulaValue:是否計(jì)算公式值
DataTable dataTable = sheet.ExportDataTable(
    sheet.AllocatedRange, 
    true,  
    true
);

通過(guò)本文的 ExportDataTable 方法,一行代碼即可完成核心Excel 到 DataTable 的轉(zhuǎn)換,無(wú)需手動(dòng)遍歷單元格。

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

相關(guān)文章

  • C#開(kāi)發(fā)Windows UWP系列之對(duì)話框MessageDialog和ContentDialog

    C#開(kāi)發(fā)Windows UWP系列之對(duì)話框MessageDialog和ContentDialog

    這篇文章介紹了C#開(kāi)發(fā)Windows UWP系列之對(duì)話框MessageDialog和ContentDialog,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#獲取DICOM圖像像素的像素值的代碼詳解

    C#獲取DICOM圖像像素的像素值的代碼詳解

    DICOM即醫(yī)學(xué)數(shù)字成像和通信,是醫(yī)學(xué)圖像和相關(guān)信息的國(guó)際標(biāo)準(zhǔn)(ISO 12052),它定義了質(zhì)量能滿足臨床需要的可用于數(shù)據(jù)交換的醫(yī)學(xué)圖像格式,這篇文章主要介紹了C#獲取DICOM圖像像素的像素值的方法,需要的朋友可以參考下
    2024-07-07
  • C# 7.0 使用下劃線忽略使用的變量的原因分析

    C# 7.0 使用下劃線忽略使用的變量的原因分析

    這篇文章主要介紹了C# 7.0 使用下劃線忽略使用的變量的原因淺析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10
  • C#程序啟動(dòng)項(xiàng)的設(shè)置方法

    C#程序啟動(dòng)項(xiàng)的設(shè)置方法

    這篇文章主要為大家詳細(xì)介紹了C#程序啟動(dòng)項(xiàng)的設(shè)置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • C#中閉包概念講解

    C#中閉包概念講解

    這篇文章主要介紹了C#中閉包概念講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C#控制臺(tái)實(shí)現(xiàn)飛行棋小游戲

    C#控制臺(tái)實(shí)現(xiàn)飛行棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C#控制臺(tái)實(shí)現(xiàn)飛行棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#反射機(jī)制介紹

    C#反射機(jī)制介紹

    這篇文章介紹了C#的反射機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • unity實(shí)現(xiàn)鼠標(biāo)跟隨(ITween)

    unity實(shí)現(xiàn)鼠標(biāo)跟隨(ITween)

    這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)鼠標(biāo)跟隨,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C# 判斷字符為空的6種方法的效率實(shí)測(cè)對(duì)比

    C# 判斷字符為空的6種方法的效率實(shí)測(cè)對(duì)比

    本文主要介紹了C#中判斷字符是否為空的方法,并實(shí)測(cè)對(duì)比各種方法的執(zhí)行效率,最后推薦大家使用IsNullOrEmpty,效率和易用性比較均衡。
    2016-05-05
  • C#中流的使用和分類(lèi)

    C#中流的使用和分類(lèi)

    這篇文章介紹了C#中流的使用和分類(lèi),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

西城区| 定安县| 昌邑市| 临夏县| 常德市| 阳朔县| 伊通| 桦甸市| 东港市| 通道| 临高县| 宁海县| 洪洞县| 临桂县| 合水县| 辽阳市| 方正县| 永宁县| 建平县| 灵台县| 当阳市| 巴青县| 武汉市| 泽库县| 大足县| 峨山| 安顺市| 内黄县| 大冶市| 宜川县| 蒲江县| 武隆县| 张家界市| 鸡东县| 石狮市| 富源县| 象州县| 开江县| 五指山市| 张家界市| 中山市|