C# 與 Excel 資料:實用指南
本文詳細介紹了使用 C# 讀取和操作 Excel 資料的有效方法。 提供的範例說明了開啟 Excel 檔案、複製其內容以及搜尋電子郵件地址。 然而,直接存取和處理單元格值需要了解 Excel 獨特的資料結構。
Excel 的資料結構:命名範圍
與典型陣列不同,Excel 使用命名範圍來儲存資料。 存取特定單元格需要引用其範圍名稱(例如,左上角單元格為“A1”)。
利用Range
物件
C# Excel.Range
物件表示 Excel 工作表中的一個儲存格或一組儲存格。 get_Range
物件的 Excel.Worksheet
方法檢索特定的 Range
物件。例如:
<code class="language-csharp">Excel.Range range = worksheet.get_Range("A1", Missing.Value);</code>
存取儲存格值:Text
與 Value2
Text
屬性傳回使用者可見的文本,而 Value2
提供基礎值(不含格式或舍入):
<code class="language-csharp">string userVisibleText = range.Text; string rawValue = range.Value2;</code>
迭代單元格範圍
foreach
循環有效地迭代一系列單元格:
<code class="language-csharp">foreach (Excel.Range cell in range1) { string text = cell.Text; string value = cell.Value2; }</code>
資源管理:適當的清理
為了有效率的資源管理,請按照與建立相反的順序釋放 Excel 物件。 由於 Excel.Application
和 Excel.Workbook
沒有實作 IDisposable
,因此使用自訂發布函數(如範例中的 ReleaseRCM
):
<code class="language-csharp">if (wkb != null) ExcelTools.OfficeUtil.ReleaseRCM(wkb); if (excel != null) ExcelTools.OfficeUtil.ReleaseRCM(excel);</code>
完整程式碼範例
此 C# 程式碼示範了存取和顯示儲存格 A1 的值:
<code class="language-csharp">using System; using ExcelTools = Ms.Office; using Excel = Microsoft.Office.Interop.Excel; namespace ExcelDemo { class Program { static void Main(string[] args) { string filePath = @"C:\Users\Chris\Desktop\TestSheet.xls"; Console.WriteLine(filePath); Excel.Application excelApp = null; Excel.Workbook workbook = null; try { excelApp = new Excel.Application(); workbook = ExcelTools.OfficeUtil.OpenBook(excelApp, filePath, false, false, true); Excel.Worksheet sheet = workbook.Sheets["Data"] as Excel.Worksheet; if (sheet != null) { Excel.Range cell = sheet.get_Range("A1", Missing.Value); string a1Value = cell != null ? cell.Text.ToString() : ""; Console.WriteLine("A1 value: {0}", a1Value); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (workbook != null) ExcelTools.OfficeUtil.ReleaseRCM(workbook); if (excelApp != null) ExcelTools.OfficeUtil.ReleaseRCM(excelApp); } } } }</code>
結論
在 C# 中成功處理 Excel 資料取決於理解 Excel 基於範圍的結構。使用 Excel.Range
物件及其屬性,以及仔細的資源管理,可以實現高效、可靠的資料存取和操作。
以上是如何使用C#有效率地讀取和操作Excel資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!