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

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

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

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

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

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

開(kāi)始前需要先通過(guò) NuGet 快速安裝該免費(fèi)庫(kù):

  • 打開(kāi) Visual Studio,右鍵點(diǎn)擊項(xiàng)目 → 選擇「管理 NuGet 程序包」。
  • 在「瀏覽」頁(yè)搜索 FreeSpire.XLS,點(diǎn)擊「安裝」即可完成。

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

Install-Package FreeSpire.XLS

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

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

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

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

適用場(chǎng)景:獲取 Excel 中固定位置的關(guān)鍵數(shù)據(jù)(如報(bào)表標(biāo)題、匯總結(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 讀取整個(gè)工作表數(shù)據(jù)

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

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ù)的單元格,避免空白行/列無(wú)效循環(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 讀取公式與公式計(jì)算結(jié)果

適用場(chǎng)景:需要獲取 Excel 中公式的原始表達(dá)式,或其計(jì)算后的最終結(jié)果(如財(cái)務(wù)報(bào)表中的自動(dòng)求和結(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];

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

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

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

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

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

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

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

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

using Spire.Xls;

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

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

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

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

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

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

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

using Spire.Xls;
using System.Drawing;

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

            // 獲取目標(biāo)工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 寫(xiě)入標(biāo)題(合并單元格 + 格式化)
            // 合并 A1:D1 單元格作為標(biāo)題欄
            sheet.Range["A1:D1"].Merge();
            sheet.Range["A1"].Text = "2024年1月員工銷(xiāo)售業(yè)績(jī)";
            // 設(shè)置標(biāo)題樣式:藍(lán)色粗體、居中對(duì)齊、行高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;

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

            // 調(diào)整列寬(適配內(nèi)容,避免文字截?cá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 以「低門(mén)檻、高兼容性」的特點(diǎn),成為 C# 處理 Excel 輕量級(jí)場(chǎng)景的優(yōu)選工具。免費(fèi)版雖有數(shù)據(jù)量限制,但足以滿足中小型項(xiàng)目的報(bào)表生成、數(shù)據(jù)導(dǎo)入導(dǎo)出等需求。

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

相關(guān)文章

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

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

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

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

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

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

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

    C#播放音頻文件的詳細(xì)步驟

    這篇文章主要介紹了C#播放音頻文件的詳細(xì)步驟,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • C#用鏈?zhǔn)椒椒ū磉_(dá)循環(huán)嵌套

    C#用鏈?zhǔn)椒椒ū磉_(dá)循環(huán)嵌套

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

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

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

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

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

    解決WPF繪制矢量圖形模糊的問(wèn)題

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

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

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

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

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

最新評(píng)論

九江市| 建平县| 武安市| 峨眉山市| 麦盖提县| 嘉荫县| 南汇区| 富裕县| 长汀县| 海安县| 内丘县| 略阳县| 万宁市| 孟津县| 甘肃省| 敦煌市| 威宁| 炉霍县| 商城县| 巴林右旗| 太保市| 山阴县| 若尔盖县| 卫辉市| 巨野县| 于都县| 融水| 荣成市| 五河县| 云龙县| 新巴尔虎右旗| 景洪市| 北安市| 广东省| 大姚县| 抚松县| 安陆市| 满洲里市| 白朗县| 本溪市| 南昌县|