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 アプリケーションを非表示にします。Type.Missing
を使用します。この強化されたアプローチにより、C# アプリケーション内で効率的かつ信頼性の高い Excel データ処理が保証されます。
以上がC# を使用して Excel ファイルからデータを効率的に読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。