使用 C# 從 Excel 擷取並驗證電子郵件地址
本指南示範如何使用 C# 從 Excel 檔案讀取數據,並專注於高效提取和驗證電子郵件地址。 該過程包括打開 Excel 文件、迭代單元格以查找電子郵件地址以及驗證其格式。
存取 Excel 檔案:
提供的程式碼片段使用Excel.Workbooks.Open
開啟Excel檔案。 為了獲得最佳效能和資源管理,請確保指定唯讀存取權並處理潛在錯誤:
<code class="language-csharp">string filePath = s.Text; // Replace 's.Text' with your file path. try { Excel.Workbook workbook = ExcelObj.Workbooks.Open(filePath, ReadOnly: true, UpdateLinks: false); // ... further processing ... } catch (Exception ex) { // Handle exceptions, such as file not found or access denied. Console.WriteLine($"Error opening Excel file: {ex.Message}"); }</code>
尋找並提取電子郵件地址:
要有效地尋找電子郵件地址,請迭代每個工作表的 UsedRange
。 正規表示式提供了一種強大的方法來驗證電子郵件格式:
<code class="language-csharp">using System.Text.RegularExpressions; // ... (previous code) ... foreach (Excel.Worksheet worksheet in workbook.Worksheets) { foreach (Excel.Range cell in worksheet.UsedRange) { string cellValue = cell.Value2?.ToString(); if (!string.IsNullOrEmpty(cellValue)) { // Regular expression for email validation (adjust as needed) string emailRegex = @"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"; Match match = Regex.Match(cellValue, emailRegex); if (match.Success) { string emailAddress = match.Value; // Process the validated email address Console.WriteLine($"Found email: {emailAddress}"); } } } } // ... (rest of the code) ...</code>
高效率的資料處理與清理:
Value2
屬性提供原始儲存格值,避免潛在的格式問題。 請記住正確處置 Excel 物件以防止資源洩漏:
<code class="language-csharp">// ... (previous code) ... workbook.Close(SaveChanges: false); // Close without saving changes. ExcelObj.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook); System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelObj); workbook = null; ExcelObj = null; GC.Collect(); // Force garbage collection.</code>
替代方法:
雖然此方法使用 Excel COM 對象,但請考慮使用 EPPlus 或 ClosedXML 等替代方案來提高效能並減少依賴性,尤其是在處理大檔案時。 這些庫提供了一種更易於管理的 Excel 操作方法。
這種改進的方法將高效的資料提取與強大的電子郵件驗證和適當的資源管理相結合,使其成為更可靠和可擴展的解決方案。請記住調整正規表示式以符合您的特定電子郵件地址要求。
以上是如何使用 C# 讀取 Excel 檔案中的資料並尋找特定的電子郵件格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!