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

C#實現(xiàn)高效讀寫Excel工作表

 更新時間:2025年10月26日 09:21:43   作者:Eiceblue  
Excel 是各行業(yè)數(shù)據(jù)管理的核心載體,廣泛應(yīng)用于財務(wù)統(tǒng)計、庫存管理、報表生成等場景,本文主要介紹了C#如何借助免費庫 Free Spire.XLS for .NET實現(xiàn)讀寫 Excel 工作表,有需要的可以了解下

Excel 是各行業(yè)數(shù)據(jù)管理的核心載體,廣泛應(yīng)用于財務(wù)統(tǒng)計、庫存管理、報表生成等場景。對于 C# 開發(fā)者而言,掌握高效的 Excel 讀寫能力,是實現(xiàn)數(shù)據(jù)自動化處理、業(yè)務(wù)報表生成的關(guān)鍵。本文基于免費庫 Free Spire.XLS for .NET,通過環(huán)境準備→實戰(zhàn)示例的邏輯,帶你從零掌握 C# 讀寫 Excel 的核心技巧。

一、環(huán)境準備

Free Spire.XLS for .NET 是一款專門用于處理 Excel 文件的免費 C# 庫,相比 EPPlus 等同類工具,它能更精細地控制 Excel 工作表(如格式設(shè)置、公式計算、圖表生成等)。

開始前需要先通過 NuGet 快速安裝該免費庫:

  • 打開 Visual Studio,右鍵點擊項目 → 選擇「管理 NuGet 程序包」。
  • 在「瀏覽」頁搜索 FreeSpire.XLS,點擊「安裝」即可完成。

或者打開「程序包管理器控制臺」,執(zhí)行以下命令:

Install-Package FreeSpire.XLS

注意:免費版存在部分限制(如單文件最大支持 500 行數(shù)據(jù))。

二、通過 C# 讀取 Excel 數(shù)據(jù)

從「讀取特定單元格」到「提取公式結(jié)果」,覆蓋開發(fā)中最常用的 3 類讀取場景,示例代碼可直接運行。

2.1 讀取指定單元格數(shù)據(jù)

適用場景:獲取 Excel 中固定位置的關(guān)鍵數(shù)據(jù)(如報表標題、匯總結(jié)果)。

using Spire.Xls;
using System;

namespace ReadExcelData
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加載 Excel 文檔
            Workbook wb = new Workbook();
            wb.LoadFromFile("示例.xlsx");

            //獲取第一張工作表
            Worksheet sheet = wb.Worksheets[0];

            // 獲取指定單元格的數(shù)據(jù)
            Console.Write(sheet.Range["B4"].Value);
            Console.WriteLine();
        }
    }
}

2.2 讀取整個工作表數(shù)據(jù)

適用場景:批量獲取工作表中所有數(shù)據(jù)(如導入 Excel 表格到數(shù)據(jù)庫)。

using Spire.Xls;
using System;

namespace ReadExcelData
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加載 Excel 文檔
            Workbook wb = new Workbook();
            wb.LoadFromFile("示例.xlsx");

            // 獲取第一張工作表
            Worksheet sheet = wb.Worksheets[0];

            // 獲取數(shù)據(jù)有效范圍(僅遍歷有數(shù)據(jù)的單元格,避免空白行/列無效循環(huán))
            CellRange locatedRange = sheet.AllocatedRange;

            //遍歷各行
            for (int i = 0; i < locatedRange.Rows.Length; i++)
            {
                //遍歷各列
                for (int j = 0; j < locatedRange.Rows[i].ColumnCount; j++)
                {
                    // 讀取單元格數(shù)據(jù)并輸出
                    Console.Write(locatedRange[i + 1, j + 1].Value + "  ");

                }
                Console.WriteLine();
            }
        }
    }
}

2.3 讀取公式與公式計算結(jié)果

適用場景:需要獲取 Excel 中公式的原始表達式,或其計算后的最終結(jié)果(如財務(wù)報表中的自動求和結(jié)果)。

using Spire.Xls;
using System;

namespace ExcelReadDemo
{
    class FormulaReadDemo
    {
        static void Main(string[] args)
        {
            // 加載 Excel 文檔
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("DataSample.xlsx");
            // 獲取第一張工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 指定包含公式的目標單元格(如 E3)
            CellRange formulaCell = sheet.Range["E3"];

            // 檢查單元格是否包含公式
            if (formulaCell.HasFormula)
            {
                Console.WriteLine("該單元格包含公式:");
                
                // 讀取公式原始表達式(如 "SUM(B3:D3)")
                string formula = formulaCell.Formula;
                Console.WriteLine($"公式表達式:{formula}");

                // 讀取公式計算結(jié)果(自動執(zhí)行計算邏輯)
                object formulaResult = formulaCell.FormulaValue;
                Console.WriteLine($"公式計算結(jié)果:{formulaResult}");
            }
            else
            {
                Console.WriteLine("該單元格不包含公式");
            }

            workbook.Dispose();
            Console.ReadKey();
        }
    }
}

三、通過 C# 寫入 Excel 數(shù)據(jù)

從「創(chuàng)建新工作簿」到「格式化數(shù)據(jù)寫入」,覆蓋報表生成、數(shù)據(jù)追加等核心寫入場景。

3.1 創(chuàng)建含多工作表的新工作簿

適用場景:從零構(gòu)建 Excel 文件(如生成包含「銷售數(shù)據(jù)」「利潤分析」的多表報表)。

using Spire.Xls;

namespace ExcelWriteDemo
{
    class NewWorkbookDemo
    {
        static void Main(string[] args)
        {
            // 初始化空工作簿
            Workbook workbook = new Workbook();

            // 清除默認空白工作表(可選,根據(jù)需求保留)
            workbook.Worksheets.Clear();

            // 添加 3 個新工作表
            workbook.CreateEmptySheets(3);

            // 重命名工作表(提升文件可讀性)
            workbook.Worksheets[0].Name = "月度銷售數(shù)據(jù)";
            workbook.Worksheets[1].Name = "庫存統(tǒng)計";
            workbook.Worksheets[2].Name = "利潤分析";

            // 保存文件(指定路徑和 Excel 版本,支持 2007/2010/2016 等)
            workbook.SaveToFile("SalesReport.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

3.2 向現(xiàn)有文件追加數(shù)據(jù)并格式化

適用場景:在已有 Excel 中添加數(shù)據(jù)并美化格式(如生成帶樣式的員工報表、銷售清單)。

using Spire.Xls;
using System.Drawing;

namespace ExcelWriteDemo
{
    class DataWriteWithFormatDemo
    {
        static void Main(string[] args)
        {
            // 加載已有的 Excel 文件
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("SalesReport.xlsx");

            // 獲取目標工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 寫入標題(合并單元格 + 格式化)
            // 合并 A1:D1 單元格作為標題欄
            sheet.Range["A1:D1"].Merge();
            sheet.Range["A1"].Text = "2024年1月員工銷售業(yè)績";
            // 設(shè)置標題樣式:藍色粗體、居中對齊、行高25
            sheet.Range["A1"].Style.Font.IsBold = true;
            sheet.Range["A1"].Style.Font.Color = Color.Blue;
            sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center;
            sheet.Rows[0].RowHeight = 25;

            // 寫入業(yè)務(wù)數(shù)據(jù)(支持文本、數(shù)值等類型)
            sheet.Range["A2"].Value = "張三";
            sheet.Range["B2"].Value = "1月";
            sheet.Range["C2"].Value2 = 58000; // 數(shù)值類型
            sheet.Range["D2"].Value = "銷售一部";
            
            sheet.Range["A3"].Value = "李四";
            sheet.Range["B3"].Value = "1月";
            sheet.Range["C3"].Value2 = 62000;
            sheet.Range["D3"].Value = "銷售二部";

            // 調(diào)整列寬(適配內(nèi)容,避免文字截斷)
            sheet.SetColumnWidth(1, 12); // A列
            sheet.SetColumnWidth(2, 10); // B列
            sheet.SetColumnWidth(3, 15); // C列
            sheet.SetColumnWidth(4, 12); // D列

            // 添加邊框(美化表格)
            CellRange dataRange = sheet.Range["A2:D3"];
            dataRange.BorderAround(LineStyleType.Medium); // 外邊框
            dataRange.BorderInside(LineStyleType.Thin);    // 內(nèi)邊框

            // 保存文件
            workbook.SaveToFile("FormattedSalesReport.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

總結(jié):Free Spire.XLS for .NET 以「低門檻、高兼容性」的特點,成為 C# 處理 Excel 輕量級場景的優(yōu)選工具。免費版雖有數(shù)據(jù)量限制,但足以滿足中小型項目的報表生成、數(shù)據(jù)導入導出等需求。

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

相關(guān)文章

  • C# Onnx實現(xiàn)輕量實時的M-LSD直線檢測

    C# Onnx實現(xiàn)輕量實時的M-LSD直線檢測

    這篇文章主要為大家詳細介紹了C#如何結(jié)合Onnx實現(xiàn)輕量實時的M-LSD直線檢測,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-11-11
  • 深入詳解C#中深拷貝的3種實現(xiàn)方與避坑指南

    深入詳解C#中深拷貝的3種實現(xiàn)方與避坑指南

    這篇文章降系統(tǒng)講解一下C#中實現(xiàn)深拷貝的三種核心方法及其適用場景,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以了解下
    2026-03-03
  • C#實現(xiàn)ListView選中項向上或向下移動的方法

    C#實現(xiàn)ListView選中項向上或向下移動的方法

    這篇文章主要介紹了C#實現(xiàn)ListView選中項向上或向下移動的方法,通過兩個按鈕點擊事件實現(xiàn)ListView選中項的上下移動功能,需要的朋友可以參考下
    2015-06-06
  • C#播放音頻文件的詳細步驟

    C#播放音頻文件的詳細步驟

    這篇文章主要介紹了C#播放音頻文件的詳細步驟,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • C#用鏈式方法表達循環(huán)嵌套

    C#用鏈式方法表達循環(huán)嵌套

    這篇文章主要介紹了C#用鏈式方法表達循環(huán)嵌套的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • C#比較日期的方法總結(jié)

    C#比較日期的方法總結(jié)

    在本篇內(nèi)容中小編給大家整理了關(guān)于C#比較日期的方法和相關(guān)知識點,有需要的朋友們學習下。
    2019-02-02
  • C# 如何調(diào)用python腳本

    C# 如何調(diào)用python腳本

    這篇文章主要介紹了C# 如何調(diào)用python腳本,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 解決WPF繪制矢量圖形模糊的問題

    解決WPF繪制矢量圖形模糊的問題

    這篇文章介紹了WPF繪制矢量圖形模糊問題的解決方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#獲取漢字拼音字母的多種方法

    C#獲取漢字拼音字母的多種方法

    文章介紹了多種在C#中獲取漢字拼音字母的方法,包括使用NPinyin庫、MicrosoftVisualStudioInternationalPack、Pinyin4Net以及自定義實現(xiàn),每種方法都有其適用場景和優(yōu)缺點,需要的朋友可以參考下
    2026-01-01
  • C#結(jié)合OpenCVSharp4實現(xiàn)圖片相似度識別

    C#結(jié)合OpenCVSharp4實現(xiàn)圖片相似度識別

    這篇文章主要為大家詳細介紹了C#如何結(jié)合OpenCVSharp4實現(xiàn)圖片相似度識別,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-09-09

最新評論

平阴县| 富裕县| 公主岭市| 新丰县| 扶沟县| 边坝县| 上栗县| 泸定县| 红安县| 沁阳市| 吉林市| 嵊州市| 郑州市| 庆云县| 苏尼特左旗| 大港区| 怀来县| 景宁| 昌平区| 东乡| 宁夏| 阜城县| 沧州市| 西昌市| 宁蒗| 拜城县| 从化市| 绥芬河市| 吴江市| 台东市| 绥宁县| 沙雅县| 清徐县| 无为县| 理塘县| 句容市| 青海省| 淳安县| 平塘县| 延庆县| 鞍山市|