【開篇】
在日常的C#開發中,處理Excel數據幾乎是每個開發者都會遇到的需求。無論是導入用户數據、生成報表,還是進行數據分析,Excel都扮演着不可或缺的角色。然而,傳統的C#讀取Excel方法,如基於COM互操作的Microsoft.Office.Interop.Excel,往往伴隨着性能瓶頸、環境依賴、部署複雜等諸多痛點。
本文介紹如何通過 Spire.XLS for .NET 實現簡單、高效的Excel讀取方案,無需任何Office依賴。
一、環境準備
步驟1:創建VS2022控制枱項目(文件 → 新建 → 項目 → 控制枱應用模板)
步驟2:通過NuGet安裝:
▸ 圖形界面:右鍵項目 → 管理NuGet程序包 → 搜索"Spire.XLS"
▸ 命令方式:
install-package Spire.XLS
免費版
install-package FreeSpire.XLS
驗證安裝成功:檢查引用中出現Spire.XLS程序集
二、▶️ 3分鐘快速上手
引入:
using Spire.Xls;
讀取:
// 加載Excel(XLS和XLSX格式均支持)
Workbook wb = new Workbook();
wb.LoadFromFile("示例.xlsx");
// 讀取單元格數據 (2種方法)
Worksheet sheet = wb.Worksheets[0];
Console.WriteLine(sheet.Range["A1"].Value); // 列名定位
Console.WriteLine(sheet.Range[2,1].Value); // 行號列號
❗️索引易錯點
當按照行號列號讀取數據時, 索引都是從1開始。
讀取Excel工作表數據
通過循環讀取整個工作表
using Spire.Xls;
namespace ReadExcelData
{
class Program
{
static void Main(string[] args)
{
// 加載Excel文檔
Workbook wb = new Workbook();
wb.LoadFromFile("示例.xlsx");
// 獲取第一張工作表
Worksheet sheet = wb.Worksheets[0];
// 獲取工作表中的數據區域
CellRange locatedRange = sheet.AllocatedRange;
// 遍歷區域中的行、列
for (int i = 0; i < locatedRange.Rows.Length; i++)
{
for (int j = 0; j < locatedRange.Rows[i].ColumnCount; j++)
{
//讀取單元格數據
Console.Write(locatedRange[i + 1, j + 1].Value + " ");
}
Console.WriteLine();
}
}
}
}
三、🧩 Excel 公式讀取
Value屬性會直接返回公式,要讀取公式的計算結果:
foreach (CellRange cell in sheet.AllocatedRange)
{
if (cell.HasFormula)
{
// 獲取原始公式
string formula = cell.Formula;
// 獲取公式計算結果(直接使用 FormulaValue)
string formulaResult = cell.FormulaValue.ToString();
C#讀取Excel是開發中的常見任務,選擇合適的工具能極大地提升開發效率和程序穩定性。