ホームページ >バックエンド開発 >C++ >C# を使用して Excel ファイルからデータを効率的に読み取る方法

C# を使用して Excel ファイルからデータを効率的に読み取る方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-11 16:37:41903ブラウズ

How to Efficiently Read Data from Excel Files Using C#?

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>

潜在的な C# の制限を回避するには、Value2 の代わりに Value を使用することが重要です。

必須のクリーンアップ

使用後に 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 に設定することで、処理中に Excel アプリケーションを非表示にします。
  • Excel データ アクセスの実行可能な代替手段として OleDb を検討してください。
  • この例では、オプションのパラメーターに C# の Type.Missing を使用します。

この強化されたアプローチにより、C# アプリケーション内で効率的かつ信頼性の高い Excel データ処理が保証されます。

以上がC# を使用して Excel ファイルからデータを効率的に読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。