Maison >développement back-end >C++ >Comment lire des données et rechercher des formats de courrier électronique spécifiques dans des fichiers Excel à l'aide de C# ?
Extraire et valider des adresses e-mail depuis Excel avec C#
Ce guide montre comment lire les données de fichiers Excel à l'aide de C#, en se concentrant sur l'extraction et la validation efficaces des adresses e-mail. Le processus consiste à ouvrir le fichier Excel, à parcourir les cellules pour trouver les adresses e-mail et à vérifier leur format.
Accès au fichier Excel :
L'extrait de code fourni utilise Excel.Workbooks.Open
pour ouvrir le fichier Excel. Pour des performances et une gestion des ressources optimales, assurez-vous de spécifier un accès en lecture seule et de gérer les erreurs potentielles :
<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>
Localisation et extraction d'adresses e-mail :
Pour localiser efficacement les adresses e-mail, parcourez le UsedRange
de chaque feuille de calcul. Les expressions régulières fournissent un moyen robuste de valider les formats d'e-mail :
<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>
Traitement et nettoyage efficaces des données :
La propriété Value2
fournit la valeur brute de la cellule, évitant ainsi les problèmes de formatage potentiels. N'oubliez pas de disposer correctement des objets Excel pour éviter les fuites de ressources :
<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>
Approches alternatives :
Bien que cette méthode utilise l'objet Excel COM, envisagez des alternatives comme EPPlus ou ClosedXML pour des performances améliorées et des dépendances réduites, en particulier lorsque vous traitez des fichiers volumineux. Ces bibliothèques offrent une approche plus gérée de la manipulation d'Excel.
Cette approche raffinée combine une extraction efficace des données avec une validation robuste des e-mails et une gestion appropriée des ressources, ce qui en fait une solution plus fiable et évolutive. N'oubliez pas d'ajuster l'expression régulière pour qu'elle corresponde aux exigences spécifiques de votre adresse e-mail.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!