ホームページ > バックエンド開発 > C++ > C# を使用して Excel ファイル内のデータを読み取り、特定の電子メール形式を検索する方法

C# を使用して Excel ファイル内のデータを読み取り、特定の電子メール形式を検索する方法

Susan Sarandon
リリース: 2025-01-11 16:22:46
オリジナル
808 人が閲覧しました

How to Read Data and Find Specific Email Formats in Excel Files Using C#?

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート