翻譯|行業資訊|編輯:吉煒煒|2025-09-10 10:36:24.090|閱讀 1 次
概述:CSV(逗號分隔值)作為輕量級數據交換格式,廣泛應用于財務報表、用戶數據、分析結果等場景。在.NET 開發中,高效處理和解析 CSV 文件是一項基礎且重要的技能。本文將介紹如何借助Spire.XLS for .NET 通過 C# 讀取 CSV 文件,包括直接讀取和將 CSV 轉換為 DataTable 兩種方式。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
CSV(逗號分隔值)作為輕量級數據交換格式,廣泛應用于財務報表、用戶數據、分析結果等場景。在.NET 開發中,高效處理和解析 CSV 文件是一項基礎且重要的技能。本文將介紹如何借助Spire.XLS for .NET 通過 C# 讀取 CSV 文件,包括直接讀取和將 CSV 轉換為 DataTable 兩種方式。
歡迎加入Spire技術交流Q群(125237868),與更多小伙伴一起提升文檔開發技能~
Spire.XLS for .NET 不僅是專業的 Excel 處理工具,還對 CSV 文件提供了完善支持,無需依賴 Microsoft Office,處理效率高且跨平臺兼容。
安裝步驟:
或通過程序包管理器控制臺執行命令:
PM> Install-Package Spire.XLS
以下 C# 代碼示例演示如何加載 CSV 文件、訪問其中數據,并以表格格式將內容輸出到控制臺。
using Spire.Xls; namespace ReadCSV { class Program { static void Main(string[] args) { // 創建 Workbook 實例 Workbook workbook = new Workbook(); // 加載 CSV 文件 workbook.LoadFromFile("庫存表.csv", ","); // 獲取第一個工作表 Worksheet sheet = workbook.Worksheets[0]; // 獲取已使用的范圍 CellRange range = sheet.AllocatedRange; // 遍歷行和列 for (int row = 1; row <= range.RowCount; row++) { for (int col = 1; col <= range.ColumnCount; col++) { // 獲取單元格值 string cellValue = range[row, col].Value; Console.Write(cellValue + "\t"); } Console.WriteLine(); } Console.ReadLine(); } } }
核心說明:
運行效果:CSV 數據將以清晰的制表符分隔格式輸出到控制臺。
若需要通過 VB.NET 讀取 CSV 文件,可使用 C# 到 VB.NET轉換器 直接轉換代碼。
DataTable 是.NET 中靈活的內存數據結構,便于篩選、排序、綁定 UI 等高級操作。以下代碼演示如何將 CSV 直接轉換為 DataTable:
using Spire.Xls; using System.Data; namespace ReadCSV { class Program { static void Main(string[] args) { // 創建 Workbook 實例 Workbook workbook = new Workbook(); // 加載 CSV 文件 workbook.LoadFromFile("庫存表.csv", ","); // 獲取第一個工作表 Worksheet worksheet = workbook.Worksheets[0]; // 將工作表中的數據導出到 DataTable DataTable dataTable = worksheet.ExportDataTable(); // 獲取行和列的數量 Console.WriteLine("\n轉換完成!DataTable信息:"); Console.WriteLine($"列數:{dataTable.Columns.Count}"); Console.WriteLine($"行數:{dataTable.Rows.Count}"); Console.WriteLine(); // 打印列名 for (int i = 0; i < dataTable.Columns.Count; i++) { Console.Write(dataTable.Columns[i].ColumnName + " | "); } Console.WriteLine(); Console.WriteLine("----------------------------------------------------------"); // 打印行數據 for (int i = 0; i < dataTable.Rows.Count; i++) { for (int j = 0; j < dataTable.Columns.Count; j++) { string value = dataTable.Rows[i][j].ToString(); Console.Write(value + "\t"); } Console.WriteLine(); } } } }
核心說明:
運行效果:輸出包含列名、數據行及統計信息的結構化結果。
若需分析、計算或格式化數據,您可以。
根據實際需求選擇合適的方法:
方法 | 適用場景 | 典型用例 |
---|---|---|
直接讀取 CSV | 快速驗證數據、簡單打印輸出 | 檢查 CSV 文件是否正確加載、預覽數據 |
轉換為 DataTable | 復雜數據處理、綁定 UI 或數據庫 | 篩選行、排序數據或保存到SQL Server |
借助 Spire.XLS for .NET,C# 處理 CSV 文件變得簡單高效:直接讀取適用于快速驗證,轉換為 DataTable 則便于高級操作。兩種方法均無需依賴 Office,且代碼可直接復用(只需修改文件路徑)。
答:雖然 .NET Framework 提供了內置的 StreamReader 處理 CSV 文件,但 Spire.XLS 的優勢在于:
答:只需將 LoadFromFile() 的第二個參數替換為實際分隔符即可:
// 讀取制表符分隔的文件 workbook.LoadFromFile("data.txt", "\t"); // 讀取分號分隔的文件 workbook.LoadFromFile("data.csv", ";"); // 讀取豎線分隔的文件 workbook.LoadFromFile("data.csv", "|");
答:可以。通過定義范圍實現精準讀取,例如跳過標題行只取特定列:
// 定義特定范圍 int startRow = 2; // 從第2行開始(跳過標題) int endRow = 4; // 在第4行結束 int startCol = 2; // 從第2列開始 int endCol = 6; // 在第6列結束 // 遍歷行和列 for (int row = startRow; row <= endRow; row++) { for (int col = startCol; col <= endCol; col++) { // 獲取單元格值 string cellValue = worksheet.Range[row, col].Value; Console.Write(cellValue + "\t"); } Console.WriteLine(); }注意:Spire.XLS 采用 1-based 索引(與Excel一致),因此第一行/列編號為1(而非0)。
歡迎下載|體驗更多E-iceblue產品
獲取更多信息請咨詢 ;技術交流Q群(125237868)
————————————————————————————————————————
關于慧都科技:
慧都科技是一家行業數字化解決方案公司,長期專注于軟件、油氣與制造行業。公司基于深入的業務理解與管理洞察,以系統化的業務建模驅動技術落地,幫助企業實現智能化運營與長期競爭優勢。在軟件工程領域,我們提供開發控件、研發管理、代碼開發、部署運維等軟件開發全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現技術合規、降本增效與風險可控。慧都科技E-iceblue的官方授權代理商,提供E-iceblue系列產品免費試用,咨詢,正版銷售等于一體的專業化服務。E-iceblue旗下Spire系列產品是國產文檔處理領域的優秀產品,支持國產化,幫助企業高效構建文檔處理的應用程序。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網