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

C#高效實現(xiàn)Excel數(shù)據(jù)讀取入門教程

 更新時間:2025年09月15日 16:05:40   作者:咕白m625  
在?C#?開發(fā)中,Excel?數(shù)據(jù)處理是高頻場景—,免費版?Free?Spire.XLS恰好能解決這些痛點,下面小編就來詳細介紹如何用它實現(xiàn)Excel數(shù)據(jù)讀取吧

在 C# 開發(fā)中,Excel 數(shù)據(jù)處理是高頻場景—無論是用戶數(shù)據(jù)導(dǎo)入、業(yè)務(wù)報表生成,還是簡單的數(shù)據(jù)分析,Excel 都不可或缺。但傳統(tǒng)依賴 Microsoft.Office.Interop.Excel 的方案,總會遇到性能差、需裝Office環(huán)境、部署麻煩等問題。

免費版 Free Spire.XLS恰好能解決這些痛點:無需安裝任何Office組件,完全免費且API簡潔,足以滿足小型項目的Excel讀取需求。下面就詳細介紹如何用它實現(xiàn)Excel數(shù)據(jù)讀取。

一、環(huán)境準備:安裝 Free Spire.XLS

1. NuGet安裝

有兩種方式任選:

  • 右鍵點擊項目 → 「管理NuGet程序包」→ 切換到「瀏覽」,搜索“FreeSpire.XLS”,找到后點擊「安裝」。
  • 打開「NuGet包管理器控制臺」,輸入以下命令并回車:
install-package FreeSpire.XLS

2. 驗證安裝

安裝完成后,展開項目的「引用」文件夾,若能看到 FreeSpire.XLS 程序集,說明免費版已成功集成。

注意:免費版有數(shù)據(jù)量限制,適合小型數(shù)據(jù)處理場景。

二、3分鐘快速上手:基礎(chǔ)單元格讀取

1. 引入命名空間

在代碼文件頂部添加 Spire.XLS 命名空間,確保能調(diào)用核心類:

using Spire.Xls;

2. 編寫基礎(chǔ)讀取代碼

支持讀取 XLS 和 XLSX 文件,提供“列名定位”和“行號列號定位”兩種方式,代碼如下:

// 1. 初始化工作簿,加載Excel文件(替換為你的文件路徑)
Workbook workbook = new Workbook();
workbook.LoadFromFile("測試數(shù)據(jù).xlsx");

// 2. 獲取第一個工作表(索引從0開始)
Worksheet targetSheet = workbook.Worksheets[0];

// 3. 讀取指定單元格數(shù)據(jù)
Console.WriteLine("通過列名讀?。ˋ1單元格):" + targetSheet.Range["A1"].Value);
Console.WriteLine("通過行號列號讀?。ǖ?行第1列):" + targetSheet.Range[2, 1].Value);

3.關(guān)鍵提醒

用「行號+列號」定位時,索引從1開始(而非 C# 常規(guī)的0索引),比如“第3行第2列”需寫為Range[3, 2],若誤寫為Range[3, 1]會定位到錯誤單元格。

三、批量讀?。罕闅v整個工作表數(shù)據(jù)

若需讀取Excel中所有有效數(shù)據(jù)(如批量導(dǎo)入到數(shù)據(jù)庫),可通過“有效數(shù)據(jù)區(qū)域”遍歷,避免讀取空單元格。完整代碼如下:

using Spire.Xls;

namespace ExcelRead
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // 加載Excel文件
                Workbook workbook = new Workbook();
                workbook.LoadFromFile("產(chǎn)品數(shù)據(jù).xlsx");

                // 獲取第一個工作表
                Worksheet dataSheet = workbook.Worksheets[0];

                // 獲取“有效數(shù)據(jù)區(qū)域”(僅包含有數(shù)據(jù)的單元格,減少資源占用)
                CellRange validRange = dataSheet.AllocatedRange;

                // 外層循環(huán)遍歷行
                for (int rowIdx = 0; rowIdx < validRange.Rows.Length; rowIdx++)
                {
                    // 內(nèi)層循環(huán)遍歷當前行的列
                    for (int colIdx = 0; colIdx < validRange.Rows[rowIdx].ColumnCount; colIdx++)
                    {
                        // 單元格索引從1開始,需對循環(huán)變量+1
                        string cellData = validRange[rowIdx + 1, colIdx + 1].Value;
                        Console.Write(cellData + "  ");
                    }
                    Console.WriteLine(); // 一行結(jié)束后換行
                }

                Console.WriteLine("讀取完成!");
            }
            catch (Exception ex)
            {
                Console.WriteLine("讀取失敗:" + ex.Message);
            }
        }
    }
}

四、特殊場景:讀取公式與計算結(jié)果

若 Excel 單元格包含公式(如=A2+B2),直接用 Value 屬性會返回公式文本,而非計算結(jié)果。Free Spire.XLS支持獲取公式結(jié)果,代碼如下:

// 遍歷有效數(shù)據(jù)區(qū)域的所有單元格
foreach (CellRange cell in dataSheet.AllocatedRange)
{
    // 判斷單元格是否包含公式
    if (cell.HasFormula)
    {
        // 1. 讀取原始公式(如“=A2+B2”)
        string formulaText = cell.Formula;

        // 2. 讀取公式計算后的結(jié)果
        string formulaResult = cell.FormulaValue.ToString();

        // 輸出結(jié)果
        Console.WriteLine($"單元格{cell.RangeAddress}:");
        Console.WriteLine($"  公式:{formulaText}");
        Console.WriteLine($"  結(jié)果:{formulaResult}\n");
    }
}

Excel 數(shù)據(jù)處理是 C# 開發(fā)中的基礎(chǔ)需求,F(xiàn)ree Spire.XLS for .NET 不僅擺脫了對 Office 環(huán)境的依賴,還通過簡潔的 API 降低了開發(fā)門檻 — 無論是基礎(chǔ)的單元格讀取、批量數(shù)據(jù)遍歷,還是特殊的公式結(jié)果獲取,都能高效實現(xiàn)。

到此這篇關(guān)于C#高效實現(xiàn)Excel數(shù)據(jù)讀取入門教程的文章就介紹到這了,更多相關(guān)C#讀取Excel數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#如何將List<string>轉(zhuǎn)換為List<double>

    C#如何將List<string>轉(zhuǎn)換為List<double>

    這篇文章主要介紹了C#如何將List<string>轉(zhuǎn)換為List<double>問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • C# SQLite執(zhí)行效率的優(yōu)化教程

    C# SQLite執(zhí)行效率的優(yōu)化教程

    這篇文章主要給大家介紹了關(guān)于C# SQLite執(zhí)行效率優(yōu)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用C# SQLite具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • C#中Thread(線程)和Task(任務(wù))實例詳解

    C#中Thread(線程)和Task(任務(wù))實例詳解

    .NET Framework在System.Threading命名空間中具有與線程相關(guān)的類,線程是一小組可執(zhí)行指令,這篇文章主要給大家介紹了關(guān)于C#中Thread(線程)和Task(任務(wù))的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • C#心跳機制客戶端的實現(xiàn)示例

    C#心跳機制客戶端的實現(xiàn)示例

    本文主要介紹了C#心跳機制客戶端,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • C# 中的委托與事件實現(xiàn)靈活的回調(diào)機制(應(yīng)用場景分析)

    C# 中的委托與事件實現(xiàn)靈活的回調(diào)機制(應(yīng)用場景分析)

    委托提供了一種類型安全的方式將方法作為參數(shù)傳遞,而事件則允許對象通知其他對象發(fā)生了某些事情,這篇文章主要介紹了C# 中的委托與事件實現(xiàn)靈活的回調(diào)機制,需要的朋友可以參考下
    2024-12-12
  • c#中的正則表達式和日期的使用示例

    c#中的正則表達式和日期的使用示例

    在?C#?中,正則表達式(Regular?Expressions)是一種強大的文本處理工具,用于執(zhí)行各種字符串搜索、替換和驗證任務(wù),這篇文章主要介紹了c#中的正則表達式和日期的使用示例,需要的朋友可以參考下
    2024-07-07
  • C#高效比較兩個DataTable數(shù)據(jù)差異化的方法實現(xiàn)

    C#高效比較兩個DataTable數(shù)據(jù)差異化的方法實現(xiàn)

    本文主要介紹了C#高效比較兩個DataTable數(shù)據(jù)差異化的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C#實現(xiàn)通過程序自動抓取遠程Web網(wǎng)頁信息的代碼

    C#實現(xiàn)通過程序自動抓取遠程Web網(wǎng)頁信息的代碼

    C#實現(xiàn)通過程序自動抓取遠程Web網(wǎng)頁信息的代碼...
    2007-04-04
  • C#實現(xiàn)簡單的窗口抖動

    C#實現(xiàn)簡單的窗口抖動

    這篇文章主要為大家詳細介紹了C#實現(xiàn)簡單的窗口抖動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C#解決多IfElse判斷語句和Switch語句問題的方法分享

    C#解決多IfElse判斷語句和Switch語句問題的方法分享

    這篇文章主要為大家介紹C#如何使用設(shè)計模式中的策略模式和委托來解決多個IfElse判斷語句和Switch語句,這種替換方式在其他語言也一樣可以做到,感興趣的可以了解一下
    2022-12-12

最新評論

乳山市| 陵川县| 临西县| 铅山县| 专栏| 绩溪县| 松滋市| 陆丰市| 岑巩县| 广安市| 自治县| 绿春县| 民丰县| 合作市| 城口县| 盈江县| 九寨沟县| 玛沁县| 松潘县| 乐安县| 通许县| 崇仁县| 呼玛县| 孝义市| 荃湾区| 策勒县| 太康县| 静海县| 上蔡县| 大宁县| 龙山县| 安平县| 黔江区| 甘南县| 河源市| 乌拉特中旗| 耒阳市| 蛟河市| 平南县| 镇宁| 含山县|