C# CSV 檔案讀取器教學:使用 IronXL 解析和轉換 CSV 數據
逗號分隔值 (CSV) 檔案在商業應用中無所不在,從財務報告到客戶資料匯出,無所不包。 雖然 CSV 解析看起來很簡單,但當處理以引號(雙引號)分隔的不同列以及各種資料類型轉換時,CSV 解析很快就會變得複雜。 IronXL是一個功能強大的 .NET 函式庫,提供企業級 CSV 處理功能。 允許開發人員輕鬆地將 CSV 資料轉換為 XML、Excel 或其他格式。
今天,我們將帶您了解如何在 C# 中使用 IronXL 作為 C 語言 csv 檔案讀取器,以及如何在 .NET 應用程式中輕鬆實現它。 使用免費試用版親自體驗 IronXL,並跟隨教學了解它如何提升您的 .NET CSV 和 Excel 任務效率。
為什麼選擇 IronXL 進行 CSV 讀取?
IronXL 將 CSV 檔案讀取從解析的難題簡化為簡單的操作。 與手動拆分操作或基本的 StreamReader 新方法不同,IronXL 可以自動處理嵌入逗號、換行符和由不尋常分隔符號分隔的列等特殊情況。
該程式庫獨立於 Microsoft Office 運行,因此非常適合伺服器環境和雲端部署。 無論部署到Windows、Linux、macOS 、Azure 或 AWS,IronXL 都能在所有平台上提供一致的結果。 這種跨平台相容性,再加上其直覺的 API,使其成為需要可靠 CSV 解析的現代 C# 應用程式的理想選擇。
IronXL 將 CSV 檔案與 Excel 格式視為同等重要的檔案類型,從而能夠在檔案類型之間無縫轉換,而不會遺失資料或出現格式問題。 除了簡單的 CSV 讀取之外,IronXL 還能夠使用 C# 從頭開始寫入 CSV 檔案。 請務必查看我們的操作指南,以了解更多相關資訊。 這使其成為滿足您所有 CSV 需求的完美庫,能夠讀取和建立 CSV 文件,並將其轉換為任何受支援的格式。
入門指南:安裝 IronXL
透過 Visual Studio 的 NuGet 套件管理器安裝 IronXL 只需幾分鐘。 開啟您的項目,在解決方案資源管理器中右鍵單擊"引用",然後選擇"管理 NuGet 套件"。搜尋"IronXL.Excel",然後按一下"安裝"。
C# CSV 檔案讀取器教學:使用 IronXL 解析和轉換 CSV 資料:圖 1 - IronXL NuGet 安裝
有關詳細的安裝指導,請造訪IronXL 安裝文件。
安裝完成後,讀取第一個 CSV 檔案只需要極少的原始程式碼,如下例所示:
using IronXL;
// Load CSV file
WorkBook workbook = WorkBook.LoadCSV("data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a specific cell
string cellValue = sheet["A1"].StringValue;
// Iterate through rows
foreach (var row in sheet.Rows)
{
foreach (var cell in row)
{
Console.WriteLine(cell.StringValue);
}
}using IronXL;
// Load CSV file
WorkBook workbook = WorkBook.LoadCSV("data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a specific cell
string cellValue = sheet["A1"].StringValue;
// Iterate through rows
foreach (var row in sheet.Rows)
{
foreach (var cell in row)
{
Console.WriteLine(cell.StringValue);
}
}在這個例子中,var 讀取器將 CSV 資料作為字串陣列存取。 WorkBook.LoadCSV方法處理標題識別、建立新資料表並執行記憶體高效的解析,從而簡化您的資料結構管理。
如何讀取具有不同分隔符號的 CSV 檔案中的資料?
實際的 CSV 檔案並不總是使用逗號。 分號、垂直線和製表符是常見的替代符號,尤其是在逗號用作小數位分隔符號的國際資料集中。 IronXL 透過其靈活的加載選項,能夠優雅地處理任何分隔符號。
using IronXL;
// Load CSV with semicolon delimiter
WorkBook workbook = WorkBook.LoadCSV("european-data.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ";");
// Load tab-separated values
WorkBook tsvWorkbook = WorkBook.LoadCSV("export_data.tsv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: "\t");
// Access data normally
WorkSheet sheet = workbook.DefaultWorkSheet;
decimal totalSales = sheet["B2:B10"].Sum();using IronXL;
// Load CSV with semicolon delimiter
WorkBook workbook = WorkBook.LoadCSV("european-data.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ";");
// Load tab-separated values
WorkBook tsvWorkbook = WorkBook.LoadCSV("export_data.tsv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: "\t");
// Access data normally
WorkSheet sheet = workbook.DefaultWorkSheet;
decimal totalSales = sheet["B2:B10"].Sum();listDelimiter 參數接受任何字串,從而可以完全控制解析行為。 IronXL 在解析過程中保留列值和資料類型。 數值仍然是數字,日期仍然是 DateTime 對象,公式保持其關係不變。 這種自動類型保留功能消除了手動轉換程式碼,減少了錯誤。
對於格式不一致的文件,IronXL 的錯誤處理功能可以優雅地處理格式錯誤的行,而不會崩潰,同時記錄問題以供審查,並繼續處理有效資料。
如何將 CSV 資料解析為 C# 物件?
將 CSV 行轉換為強型別物件可以簡化資料處理並支援 LINQ 操作。 IronXL 透過其蜂窩接入方法使這種映射變得簡單。 以下程式碼展示如何編寫一個簡單的 CSV 解析器來處理這種情況:
using IronXL;
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public int Stock { get; set; }
public DateTime? LastUpdated { get; set; }
}
class Program
{
static void Main(string[] args)
{
// Parse CSV into objects
var products = new List<Product>();
WorkBook workbook = WorkBook.LoadCSV("inventory.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Skip first line (header), parse remaining lines
for (int row = 2; row <= sheet.RowCount; row++)
{
products.Add(new Product
{
Name = sheet[$"A{row}"].StringValue,
Price = sheet[$"B{row}"].DecimalValue,
Stock = sheet[$"C{row}"].IntValue,
LastUpdated = sheet[$"D{row}"].DateTimeValue
});
}
// Use LINQ for analysis
var lowStock = products.Where(p => p.Stock < 10).ToList();
}
}using IronXL;
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public int Stock { get; set; }
public DateTime? LastUpdated { get; set; }
}
class Program
{
static void Main(string[] args)
{
// Parse CSV into objects
var products = new List<Product>();
WorkBook workbook = WorkBook.LoadCSV("inventory.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Skip first line (header), parse remaining lines
for (int row = 2; row <= sheet.RowCount; row++)
{
products.Add(new Product
{
Name = sheet[$"A{row}"].StringValue,
Price = sheet[$"B{row}"].DecimalValue,
Stock = sheet[$"C{row}"].IntValue,
LastUpdated = sheet[$"D{row}"].DateTimeValue
});
}
// Use LINQ for analysis
var lowStock = products.Where(p => p.Stock < 10).ToList();
}
}IronXL 的類型化值屬性(StringValue、DecimalValue、IntValue、DateTimeValue)能夠安全地處理轉換,對於無效資料傳回預設值,而不是拋出例外。 這樣就避免了繁瑣的手動工作,例如在解析後為每個屬性建立一個新字串。 這種防禦性方法確保了應用程式的穩健性,使其能夠優雅地處理不完美的資料。
該程式庫還支援可空類型和自訂解析邏輯(如有需要),從而可以在不犧牲簡潔性的前提下適應複雜的業務規則。
如何將CSV檔案轉換為Excel格式?
許多業務流程需要將 CSV 資料轉換為 Excel 格式,以便進行進階分析、格式化或分發給利害關係人。 IronXL 讓這種轉換變得非常簡單,同時也能保持所有資料的完整性。
// Load CSV file
WorkBook csvWorkbook = WorkBook.LoadCSV("monthly-report.csv");
// Save as Excel with single method call
csvWorkbook.SaveAs("monthly-report.xlsx");
// Add formatting before saving
WorkSheet sheet = csvWorkbook.DefaultWorkSheet;
sheet["A1:D1"].Style.Font.Bold = true;
sheet["B:B"].FormatString = "$#,##0.00"; // Currency format// Load CSV file
WorkBook csvWorkbook = WorkBook.LoadCSV("monthly-report.csv");
// Save as Excel with single method call
csvWorkbook.SaveAs("monthly-report.xlsx");
// Add formatting before saving
WorkSheet sheet = csvWorkbook.DefaultWorkSheet;
sheet["A1:D1"].Style.Font.Bold = true;
sheet["B:B"].FormatString = "$#,##0.00"; // Currency format轉換過程中保留了數值精度、日期格式和特殊字符,而這些內容通常會在手動轉換方法中造成問題。 IronXL 會自動優化產生的 Excel 文件結構,建立高效的文件,即使包含大型資料集也能快速開啟。
這種無縫轉換功能實現了自動化報告流程,可以將來自各種來源的 CSV 資料轉換為精美的 Excel 報告,供高階主管審核。
C# CSV 檔案讀取器教學:使用 IronXL 解析和轉換 CSV 資料:圖 5 - 將 CSV 轉換為 Excel 格式
最佳實務和進階功能
IronXL 具有多項先進增強功能,可提高 CSV 處理的可靠性。 本函式庫可自動處理各種文字編碼( UTF-8、UTF-16、ASCII ),確保國際字串值和欄位正確顯示。 記憶體高效的串流處理大型 CSV 文件,無需同時將所有資料載入到 RAM 中。
處理來自不受信任來源的 CSV 檔案時,為了增加安全性,請將操作包裝在 try-catch (Exception ex) 區塊中。 有關全面的錯誤處理策略,請查看IronXL 故障排除指南。
為了獲得最佳效能,處理大型資料集時,請使用範圍操作(sheet["A1:Z1000"]),而不是逐個儲存格存取單一資料表行或整個字串列。 IronXL 的公式引擎也支援 CSV 數據,無需先轉換為 Excel 格式即可進行計算。該程式庫的跨平台支援不僅限於基本相容性。 Docker 容器、Linux 伺服器和雲端函數都可以在不進行任何配置變更的情況下運行 IronXL,使其成為微服務架構的理想選擇。
該程式庫的跨平台支援不僅限於基本相容性。 Docker 容器、Linux 伺服器和雲端函數都可以在不進行任何配置變更的情況下運行 IronXL,使其成為微服務架構的理想選擇。
結論
IronXL 將 C# CSV 檔案讀取從一項繁瑣的任務轉變為可靠的、企業級的解決方案。 其自動 CSV 解析、資料結構管理和無縫 Excel 轉換功能使其成為現代 .NET 應用程式中處理 CSV 檔案、資料表 dt 或 CSV 資料的開發人員的首選。
準備好簡化您的 CSV 處理流程了嗎? 立即取得 IronXL ,在您的應用程式中體驗企業級資料處理。
常見問題解答
什麼是 CSV 檔案?為什麼它被廣泛使用?
CSV 文件,即逗號分隔值文件,是一種用於儲存表格資料的簡單文字格式。由於其簡單易用,它被廣泛應用於商業應用中,用於在不同系統之間匯出和匯入資料。
IronXL 如何幫助 C# 解析 CSV 檔案?
IronXL 透過提供強大的工具來處理複雜的 CSV 結構,包括不同的列分隔符號、帶有引號的欄位和資料類型轉換,從而簡化了 C# 中的 CSV 檔案解析。
IronXL能否將CSV資料轉換為其他格式?
是的,IronXL 允許開發人員將 CSV 資料轉換為各種格式,例如 XML 和 Excel,使其能夠靈活地滿足不同的資料處理需求。
CSV檔案解析中常見的挑戰有哪些?
常見的挑戰包括處理不同的列分隔符號、管理帶引號的欄位以及執行準確的資料類型轉換。 IronXL 憑藉其先進的解析功能,有助於緩解這些問題。
IronXL 是否適用於企業級 CSV 處理?
是的,IronXL 的設計目標是面向企業用戶,為 .NET 應用程式提供強大且可擴展的 CSV 檔案處理解決方案。
IronXL是否支援高效處理大型CSV檔案?
IronXL 針對效能進行了最佳化,使其能夠高效處理大型 CSV 文件,而不會影響速度或準確性。
IronXL 能否處理帶有自訂分隔符號的 CSV 檔案?
是的,IronXL 支援具有自訂分隔符號的 CSV 文件,使開發人員在處理非標準 CSV 格式時擁有更大的靈活性。
IronXL 如何處理 CSV 檔案中的引號的欄位?
IronXL 能夠準確解析 CSV 檔案中的引號字段,確保讀取過程中資料的完整性和正確轉換。
IronXL 可以使用哪些程式語言進行 CSV 解析?
IronXL 是一個 .NET 函式庫,因此可以與 .NET 框架支援的語言一起使用,例如 C# 和 VB.NET。
是否有使用 IronXL 處理 CSV 檔案的程式碼範例?
是的,IronXL 文件提供了在 C# 應用程式中讀取、解析和處理 CSV 檔案的完整程式碼範例。






