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

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

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

在企業(yè)級開發(fā)中,Excel 與數(shù)據(jù)庫 / 內(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)證、入庫、展示)。本文將分享如何使用免費(fèi)庫 Free Spire.XLS for .NET 實(shí)現(xiàn) Excel 文件到 DataTable 的高效轉(zhuǎn)換。

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

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

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

無需依賴 Microsoft Office/Excel 客戶端,跨平臺部署更便捷;

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

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

2. 安裝 Free Spire.XLS

推薦通過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開始)
            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)階場景:

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

    DICOM即醫(yī)學(xué)數(shù)字成像和通信,是醫(yī)學(xué)圖像和相關(guān)信息的國際標(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 使用下劃線忽略使用的變量的原因淺析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10
  • C#程序啟動項(xiàng)的設(shè)置方法

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

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

    C#中閉包概念講解

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

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

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

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

    這篇文章介紹了C#的反射機(jī)制,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(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# 判斷字符為空的6種方法的效率實(shí)測對比

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

    C#中流的使用和分類

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

最新評論

城步| 永川市| 龙川县| 抚宁县| 太仆寺旗| 德保县| 滨州市| 云和县| 五华县| 宝应县| 旬阳县| 抚顺县| 耒阳市| 奎屯市| 临夏县| 南宫市| 武乡县| 黄浦区| 彰武县| 榆树市| 石狮市| 拜泉县| 绥滨县| 盘锦市| 武强县| 麦盖提县| 中卫市| 南充市| 修武县| 新余市| 锡林浩特市| 石渠县| 济源市| 家居| 临洮县| 凤台县| 大同县| 安陆市| 隆回县| 白银市| 平舆县|