使用 C# 掌握 Excel 資料擷取
在 C# 中有效處理 Excel 檔案需要清楚了解命名範圍。 不依賴數組索引,而是利用 get_Range()
方法進行精確的單元格選擇。
例如,要存取儲存格 A1:
<code class="language-csharp">Excel.Worksheet sheet = workbook.Sheets["Sheet1"] as Excel.Worksheet; Excel.Range range = sheet.get_Range("A1", Missing.Value);</code>
range
現在代表儲存格 A1。 使用以下方式存取其內容:
range.Text
:顯示儲存格的格式化文字。 range.Value2
:檢索基礎單元格值(未格式化)。 迭代單元格範圍:
<code class="language-csharp">Excel.Range range = sheet.get_Range("A1:A5", Missing.Value); if (range != null) { foreach (Excel.Range r in range) { string userText = r.Text; object cellValue = r.Value2; //Note: object type for flexibility } }</code>
至關重要的是,使用 Value2
而不是 Value
以避免潛在的 C# 限制。
基本清理
透過使用後釋放 COM 物件來防止記憶體洩漏:
<code class="language-csharp">if (wkb != null) ExcelTools.OfficeUtil.ReleaseRCM(wkb); if (excel != null) ExcelTools.OfficeUtil.ReleaseRCM(excel);</code>
ReleaseRCM
是用來釋放 COM 資源的自訂函數。
範例程式碼片段
<code class="language-csharp">using ExcelTools = Ms.Office; // Assuming a custom namespace using Excel = Microsoft.Office.Interop.Excel; ... Excel.Workbook wkb = ExcelTools.OfficeUtil.OpenBook(excel, file); ... Excel.Worksheet sheet = wkb.Sheets["Data"] as Excel.Worksheet; Excel.Range range = sheet.get_Range("A1", Missing.Value); string cellA1Text = range.Text.ToString(); ...</code>
主要考慮因素
false
.Type.Missing
作為選用參數。 這種增強的方法可確保您的 C# 應用程式中高效可靠的 Excel 資料處理。
以上是如何使用C#有效率地讀取Excel檔案中的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!