使用 IRONXL 如何在 C# 中導入 Excel 文件 Jordi Bardia 更新:2026年1月19日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在C#中使用IronXL導入Excel文件,這是一個.NET程式庫,可以在未安裝Microsoft Excel的情況下讀取XLS、XLSX、CSV文件。 只需使用sheet["A1"]這樣的直觀語法來訪問單元格數據。 Microsoft Excel是一款多功能的電子表格軟體,可幫助進行數據組織、展示和分析。 然而,在C#中以程式方式處理Excel可能會很具挑戰性,特別是當要處理不同的電子表格文件類型或者當部署伺服器上沒有安裝Microsoft Office時。 IronXL程式庫提供了一個全面的解決方案,可在C#應用程式中導入和讀取Excel文件,支援多種格式,包括XLSX、XLS和CSV文件。 什麼是IronXL,為什麼我需要用它來導入Excel? IronXL是一個.NET的Excel程式庫,優先考慮易用性、準確性和速度。 它幫助您高效地導入和讀取Excel文件,並以閃電般的速度創建和編輯Excel文件。 與傳統需要Microsoft Office Interop的方式不同,IronXL獨立運行,無需類比於MS Office Interop的依賴。 這意味著您可以在未安裝Excel的情況下獲得讀取Excel文件的所有功能。 這讓IronXL成為開發者在C#應用程式中導入和讀取Excel文件的有力工具,無論您是在構建ASP.NET web應用程式、桌面應用程式還是基於雲的解決方案。 IronXL適用於所有平臺,如Windows、Linux、macOS、Docker、Azure和AWS。 它與所有.NET Framework版本相容,支持現代的.NET Core和.NET 5+環境。 IronXL是一個多功能程式庫,可以整合到Console、Desktop和Web ASP.NET應用程式中,以及Blazor應用程式。 它支持不同的工作簿格式,如XLS和XLSX文件、XSLT和XLSM、CSV和TSV,使其成為您需要在電子表格文件類型之間轉換的理想選擇。 哪些關鍵功能讓IronXL成為Excel導入的必備工具? 開啟、讀取Excel文件並從不同的電子表格格式(如XLS/CSV/TSV/XLSX文件)中搜尋數據,無需安裝Excel 將Excel工作表導出到多種格式,包括XLS/XLSX/CSV/TSV/JSON,甚至是HTML 使用密碼加密和解密XLSM/XLTX/XLSX文件以增強安全性 將Excel表單導入為System.Data.DataSet和System.Data.DataTable對象,實現無縫的數據庫集成 每次編輯工作表時,Excel文件公式會自動重新計算 使用WorkSheet["A1:B10"]簡便語法進行範圍選擇的直觀單元格範圍設置 使用內置方法排序單元格範圍、列和行 全面的單元格樣式設置,包括字體自定義、背景顏色、邊框和對齊以及編號格式 如何在C#中導入Excel工作簿? 在開始導入Excel之前,我需要什麼? 要在C#中使用IronXL讀取Excel文件,請確保您的計算機上安裝了以下組件: Visual Studio - 這是開發C# .NET應用程式的官方IDE。 Visual Studio提供了出色的IntelliSense支持和調試工具,使處理Excel文件更加容易。 您可以從Microsoft網站下載並安裝Visual Studio。 社區版是免費的,足以滿足大多數開發需求。 IronXL - 這是幫助您在C#中以給定路徑處理Excel表單的程式庫。 在使用之前,必須在您的C#程序中安裝它。 IronXL可以輕鬆地從NuGet網站下載,也可以直接通過Visual Studio工具中的管理NuGet程序包界面進行安裝。 如果您喜歡手動安裝,也可以直接下載.NET Excel DLL文件。 對於生產部署,您需要應用授權金鑰來去除浮水印和啟用全部功能。 開發和測試可以使用試用版進行。 我應該在我的程式碼中添加哪些命名空間? 一旦安裝了Visual Studio和IronXL,請引用IronXL程序集以在您的源代碼中使用IronXL。 在使用IronXL功能的新專案中,在文件頂部添加以下代碼行: using IronXL; using IronXL; $vbLabelText $csharpLabel 這單一的命名空間導入提供了進行Excel操作所需的所有核心功能。 如果您正在處理像圖表或條件格式等特定的Excel功能,您可能需要從IronXL程式庫中導入其他命名空間。 如何加載和打開Excel文件? Microsoft Excel試算表也被稱為Excel工作簿。 每個工作簿包含多個工作表(也稱為表單),而單個工作表包含按行和列組織並分別值的表格單元格。 要打開並讀取Excel文件,使用IronXL程式庫中的WorkBook類和Load方法加載它。 代碼如下: // Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV WorkBook workbook = WorkBook.Load("test.xlsx"); // You can also load from a stream using (var stream = File.OpenRead("test.xlsx")) { WorkBook streamWorkbook = WorkBook.Load(stream); } // Or load CSV files with custom delimiters WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ","); // Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV WorkBook workbook = WorkBook.Load("test.xlsx"); // You can also load from a stream using (var stream = File.OpenRead("test.xlsx")) { WorkBook streamWorkbook = WorkBook.Load(stream); } // Or load CSV files with custom delimiters WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ","); $vbLabelText $csharpLabel 這會在工作簿實例引用變量中打開Excel文件。 由於一個工作簿可以包含多個工作表,可以用多種方式訪問它們。 以下代碼在表單實例變量中打開第一個工作表: // Get the first worksheet WorkSheet sheet = workbook.WorkSheets.First(); // Or access by worksheet name WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1"); // Or by index (zero-based) WorkSheet indexedSheet = workbook.WorkSheets[0]; // Get the first worksheet WorkSheet sheet = workbook.WorkSheets.First(); // Or access by worksheet name WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1"); // Or by index (zero-based) WorkSheet indexedSheet = workbook.WorkSheets[0]; $vbLabelText $csharpLabel 這將打開Excel文件中的第一個表單,現在可以從這個表單中讀取和寫入Excel數據。 對於更高級的場景,您可能需要管理多個工作表或以程式方式創建新的電子表格。 已開啟的Excel文件 包含員工資訊的範例Excel文件,將使用C#導入。 數據包括名稱、職稱(經理、主管、員工、總裁)和相應的薪資數值。 導入後我如何讀取特定的單元格值? Excel文件一旦被導入,它就已準備好讀取數據。 使用IronXL在C#中讀取Excel文件數據非常簡單和容易。 您可以通過在標準Excel表示法中打出單元格的參考編號(如"A1","B2"等)來讀取Excel單元格值。 該程式庫提供多種方法來訪問單元格值,依據期望的數據類型選擇。 下面的代碼檢索了參考號為"C2"的單元格的值: // Select cells easily in Excel-notation and return the value int cellValue = sheet["C2"].IntValue; // Display the value Console.WriteLine(cellValue); // You can also access different data types string textValue = sheet["A2"].StringValue; decimal decimalValue = sheet["C2"].DecimalValue; double doubleValue = sheet["C2"].DoubleValue; DateTime dateValue = sheet["D2"].DateTimeValue; bool boolValue = sheet["E2"].BoolValue; // Check if cell is empty bool isEmpty = sheet["F2"].IsEmpty; // Select cells easily in Excel-notation and return the value int cellValue = sheet["C2"].IntValue; // Display the value Console.WriteLine(cellValue); // You can also access different data types string textValue = sheet["A2"].StringValue; decimal decimalValue = sheet["C2"].DecimalValue; double doubleValue = sheet["C2"].DoubleValue; DateTime dateValue = sheet["D2"].DateTimeValue; bool boolValue = sheet["E2"].BoolValue; // Check if cell is empty bool isEmpty = sheet["F2"].IsEmpty; $vbLabelText $csharpLabel 輸出如下: 在C#中成功讀取Excel文件後的調試控制台輸出。 程式已經完成執行並正在等待用戶輸入以關閉。 現在,讓我們從打開的Excel文件中讀取一個範圍的數據。IronXL使得使用熟悉的Excel表示法來處理單元格範圍變得容易。 代碼如下: // Read from a range of cells elegantly. foreach (var cell in sheet["A2:A6"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } // You can also work with entire rows or columns var row = sheet.GetRow(2); // Get row 3 (0-indexed) foreach (var cell in row) { Console.WriteLine($"Row cell value: {cell.Value}"); } // Or get a column var column = sheet.GetColumn(0); // Get column A foreach (var cell in column) { Console.WriteLine($"Column A value: {cell.Value}"); } // Read from a range of cells elegantly. foreach (var cell in sheet["A2:A6"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } // You can also work with entire rows or columns var row = sheet.GetRow(2); // Get row 3 (0-indexed) foreach (var cell in row) { Console.WriteLine($"Row cell value: {cell.Value}"); } // Or get a column var column = sheet.GetColumn(0); // Get column A foreach (var cell in column) { Console.WriteLine($"Column A value: {cell.Value}"); } $vbLabelText $csharpLabel 代碼非常簡單、乾淨和清晰。 可以使用sheet["A2:A6"],每個單元格可以迭代以獲取其值。 在這裡,您可以在控制台輸出中看到從第2行到第6行的A列中的名字: 控制台輸出展示了使用C#成功讀取包含名稱的Excel單元格範圍(A2:A6) 欲獲取有關讀取和寫入單元格值的詳細信息,請查看此C#範例中的讀取Excel文件教程。 您還可以探索如應用公式或使用命名範圍等高級功能。 如何一次性導入整個工作表? IronXL可以使用行和列索引來一次性讀取Excel表單。 這在您需要處理工作表中的所有數據或當您將Excel轉換為其他格式如CSV或JSON時特別有用。 以下IronXL代碼範例幫助您在控制台輸出中以相同格式獲取整個Excel文件數據: WorkBook workbook = WorkBook.Load("test.xlsx"); WorkSheet sheet = workbook.WorkSheets.First(); // Traverse all rows of Excel WorkSheet for (int i = 0; i < sheet.Rows.Count(); i++) { // Traverse all columns of specific Row for (int j = 0; j < sheet.Columns.Count(); j++) { // Get the values string val = sheet.Rows[i].Columns[j].Value.ToString(); Console.Write("{0}\t", val); } Console.WriteLine(); } // Alternative method using LINQ for more efficient processing var allData = sheet.Rows.SelectMany(row => row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList(); WorkBook workbook = WorkBook.Load("test.xlsx"); WorkSheet sheet = workbook.WorkSheets.First(); // Traverse all rows of Excel WorkSheet for (int i = 0; i < sheet.Rows.Count(); i++) { // Traverse all columns of specific Row for (int j = 0; j < sheet.Columns.Count(); j++) { // Get the values string val = sheet.Rows[i].Columns[j].Value.ToString(); Console.Write("{0}\t", val); } Console.WriteLine(); } // Alternative method using LINQ for more efficient processing var allData = sheet.Rows.SelectMany(row => row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList(); $vbLabelText $csharpLabel 對於較大的Excel文件,您可能需要考慮使用DataTable或DataSet對象以獲得更好的性能和更容易的數據操作: // Convert worksheet to DataTable for easier manipulation DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers // Process data using DataTable methods foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item}\t"); } Console.WriteLine(); } // Convert worksheet to DataTable for easier manipulation DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers // Process data using DataTable methods foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item}\t"); } Console.WriteLine(); } $vbLabelText $csharpLabel 輸出文件 控制台輸出成功顯示從Excel文件導入的員工數據,並正確格式化顯示姓名、職位和薪資信息。 . 導入Excel文件後的下一步是什麼? 本文展示了如何在未安裝Microsoft Excel的情況下在C#中導入和讀取Excel文件。 它涵蓋了多種從Excel試算表讀取數據的方法,從單個單元格到整個工作表。 IronXL還幫助您無需安裝任何Excel即可在C#中創建Excel文件。 在成功導入Excel數據後,您可能想要探索其他功能: 數據處理:排序單元格範圍、應用過濾器,或分組和取消分組行和列 數據驗證:實現數據驗證規則以確保數據完整性 格式化:應用單元格樣式、條件格式或編號格式 圖表和可視化:創建圖表或添加圖片來增強數據展示 安全性:密碼保護工作簿或單個工作表 IronXL提供了一個全方位的解決方案,以程式方式實現所有與Microsoft Excel文件相關的任務。 您可以執行公式計算、字串或數字排序、修剪和附加、查找和替換、合併和拆分單元格、保存文件等等。 您可以編輯單元格值,並設置單元格數據格式及驗證試算表數據。 它還支持CSV文件,幫助您無縫處理Excel數據。 對於企業應用,考慮探索針對各種平臺的部署選項,包括Docker容器、Azure Functions和AWS Lambda。 IronXL提供免費試用,並可用於商業用途,其Lite包起價僅為$799。 該程式庫提供出色的文檔、教程和代碼範例,幫助您快速開始在C#應用程式中進行Excel文件操作。 常見問題解答 如何在不使用 Interop 的情況下在 C# 中匯入和讀取 Excel 文件? 您可以使用 IronXL 庫在 C# 中匯入和讀取 Excel 文件。只需使用 WorkBook.Load("file.xlsx") 讀取 Excel 文件,即可在無需安裝 Microsoft Excel 的情況下訪問和處理數據。 IronXL 庫與哪些平台兼容? IronXL 與所有 .NET Framework兼容,可在多個平台上使用,包括 Windows、Linux、MacOS、Docker、Azure 和 AWS。 我可以使用 IronXL 編輯 Excel 文件而不安裝 Microsoft Excel 嗎? 可以,IronXL 允許您在 C# 中以程式化方式創建和編輯 Excel 文件,而無需在系統上安裝 Microsoft Excel。 IronXL 可以處理哪些 Excel 格式? IronXL 支援各種 Excel 文件格式,如 XLS、XLSX、CSV、TSV 等,方便數據的匯入和操作。 在 C# 項目中使用 IronXL 有什麼先決條件? 要使用 IronXL,請確保已安裝 Visual Studio。您可以通過 NuGet 套件管理器將 IronXL 添加到您的項目中,或下載並引用 .NET Excel DLL。 如何在 C# 中使用 IronXL 加載 Excel 活頁簿? 要在 C# 中加載 Excel 活頁簿,使用 IronXL 的 WorkBook.Load("path/to/file.xlsx") 方法,可打開並操作活頁簿。 IronXL 能處理 Excel 公式嗎? 可以,IronXL 能夠在編輯工作表時無縫處理和重新計算 Excel 公式,以確保數據計算的準確性。 如何使用 IronXL 從特定單元格讀取數據? 要從特定單元格讀取數據,使用 IronXL 語法如 sheet["B2"].StringValue 從 B2 單元格獲取值。 我可以使用 IronXL 循環遍歷 Excel 表格中的一個範圍的單元格嗎? 可以,您可以使用 IronXL 循環遍歷一個範圍的單元格,語法如 foreach (var cell in sheet["A1:C3"]) 逐一處理每個單元格。 如何將 IronXL 整合到 ASP.NET 應用程序中? IronXL 可以通過 NuGet 添加到 ASP.NET 應用程序中,並在項目中引用,從而實現 Web 應用程序中的 Excel 文件操作。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多 更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多 更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多 如何在 C# 中將 `DataTable` 匯出為 CSV如何在 C# 中將數據集轉換...
更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多
更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多
更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多