CSV(逗號分隔值)文件作為一種輕量級的數據交換格式,在數據處理和導入導出場景中廣泛應用。雖然 .NET Framework 提供了多種原生處理 CSV 的方式,但使用專門的庫可以簡化代碼并提高開發效率。Free Spire.XLS for .NET 是一個強大的免費庫,不僅支持 Excel 文件操作,還能輕松處理 CSV 文件。
一、基本 CSV 讀取操作
1. 準備 CSV 文件
假設我們有 students.csv 文件,內容如下:
學號,姓名,語文,數學,英語
1001,張三,85,90,88
1002,李四,92,85,90
1003,王五,78,88,85
2. 安裝 Free Spire.XLS
Install-Package FreeSpire.XLS
- 或在 Visual Studio 中右鍵項目 → 管理 NuGet 程序包 → 搜索 FreeSpire.XLS → 安裝。
?? 需注意,免費版有篇幅限制,適用于個人或小型項目
3. C# 示例代碼:讀取整個 CSV 文件
using Spire.Xls;
class Program
{
static void Main(string[] args)
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("student.csv", ",", 1, 1);
Worksheet sheet = workbook.Worksheets[0];
int rowCount = sheet.LastRow;
int colCount = sheet.LastColumn;
Console.WriteLine($"文件包含 {rowCount} 行,{colCount} 列數據");
Console.WriteLine("==============================");
for (int row = 1; row <= rowCount; row++)
{
for (int col = 1; col <= colCount; col++)
{
Console.Write(sheet.Range[row, col].Value + "\t");
}
Console.WriteLine();
}
}
}
關鍵說明: 除逗號外,支持制表符(\t)、分號(;)等分隔符,只需修改 LoadFromFile 方法中的第二個 separator 參數。
CSV 讀取結果:

二、進階 CSV 讀取技巧
場景 1:讀取為 DataTable
將 CSV 文件完整讀取到 DataTable,方便后續數據處理(如篩選、入庫、展示)。
using System.Data;
using Spire.Xls;
namespace CsvReadDemo
{
class Program
{
static void Main(string[] args)
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("student.csv", ",", 1, 1);
Worksheet worksheet = workbook.Worksheets[0];
DataTable dataTable = worksheet.ExportDataTable();
Console.WriteLine("CSV文件內容:");
foreach (DataColumn column in dataTable.Columns)
{
Console.Write(column.ColumnName + "\t");
}
Console.WriteLine();
foreach (DataRow row in dataTable.Rows)
{
foreach (var cellValue in row.ItemArray)
{
Console.Write(cellValue.ToString() + "\t");
}
Console.WriteLine();
}
workbook.Dispose();
}
}
}
代碼說明:
- CSV 文件會被解析為 Excel 工作表,通過
ExportDataTable() 可直接轉為 DataTable,無需手動解析每行每列; - 若 CSV 第一行是列名,
ExportDataTable() 默認將第一行作為列名,后續行作為數據行。
Datable 驗證結果:

場景 2:讀取特定行和列
若只需讀取 CSV 的部分數據(如第 5 行、第 3 列,或指定行列范圍),可直接通過工作表的 Range[] 屬性定位。
using Spire.Xls;
namespace CsvReadDemo
{
class Program
{
static void Main(string[] args)
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("student.csv", ",", 1, 1);
Worksheet worksheet = workbook.Worksheets[0];
string cellValue = worksheet.Range[3, 2].Text;
Console.WriteLine("第3行第2列的值:" + cellValue);
Console.WriteLine("\n第4行所有數據:");
for (int col = 1; col <= worksheet.LastColumn; col++)
{
Console.Write(worksheet.Range[4, col].Text + "\t");
}
Console.WriteLine("\n\n第1列所有數據:");
for (int row = 1; row <= worksheet.LastRow; row++)
{
Console.WriteLine(worksheet.Range[row, 1].Text);
}
workbook.Dispose();
}
}
}
控制臺輸出效果:

Free Spire.XLS for .NET 通過封裝好的 API,讓 CSV 讀取變得簡單高效。本文覆蓋了基礎讀取、DataTable轉換、指定行列讀取等核心場景,滿足大部分業務需求。除了讀取,Free Spire.XLS 還支持 CSV 文件的寫入、格式修改、轉為 Excel 等多種操作。