IronXL Docker ロゴ C# Excel Interop C# Excel Interop Workaround Curtis Chau 更新日:8月 20, 2025 Download IronXL NuGet Download テキストの検索と置換 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article This article was translated from English: Does it need improvement? Translated View the article in English 多くのプロジェクトでは、Excelを使用して明確にコミュニケーションを取りますが、Microsoft.Office.Interop.Excelを使用している場合、複雑なコード行に直面することが多いでしょう。 このチュートリアルでは、C# Excel Interopの代わりにIronXLを使用して、Interopを使わずにプロジェクトを完成させる方法を紹介します。 Excelファイルデータを使用したり、Excelファイルを作成、編集、操作することがすべてC#プログラミングで可能です。 class="learnn-how-section"> class="row"> class="col-sm-6"> C# Excel No Interop Excel No Interopライブラリをダウンロード C#でExcelファイルにアクセス プログラム的に新しいExcelファイルを作成し、データを挿入 既存のファイルを変更して、セルの値を更新・置換、行を削除など class="col-sm-6"> class="download-card"> Excel Interopを別の方法で利用する方法 ExcelライブラリをインストールしてExcelファイルを処理します。 Workbookを開いて現在のExcelファイルを追加します。 デフォルトのワークシートを設定します。 Excelワークブックから値を読み取ります。 処理して値を表示します。 class="tutorial-segment-title">ステップ 1 1. IronXL ライブラリをダウンロード Download IronXL Library or NuGetでインストールして無料ライブラリにアクセスし、Interopを使わずにこのチュートリアルをステップバイステップで進めてください。プロジェクトを始動させたい場合、ライセンスも利用可能です。 Install-Package IronXL.Excel class="tutorial-segment-title">チュートリアル方法 2. Excelファイルデータにアクセス ビジネスアプリケーションを開発するには、Excelファイルからのデータへの簡単で完璧なアクセスと、それらをさまざまな要件に従ってプログラム的に操作する能力が必要です。 IronXLを使用して、特定のExcelファイルの読み取りを可能にするWorkBook.Load()関数を使用します。 WorkBookにアクセスした後、WorkBook.GetWorkSheet()関数を使って特定のワークシートを選択できます。 これで、すべてのExcelファイルデータが利用可能です。 次の例で、これらの関数をどのように使用してC#プロジェクトでExcelファイルデータを取得したかを見ることができます。 // Import the IronXL library to access its functionality using IronXL; static void Main(string[] args) { // Access Excel file WorkBook wb = WorkBook.Load("sample.xlsx"); // Access WorkSheet of Excel file WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Get a specific cell value, convert it to a string, and print it string a = ws["A5"].Value.ToString(); Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a); Console.WriteLine("\nGetting Many Cells Value using Loop:\n"); // Get multiple cell values using range function and iterate through them foreach (var cell in ws["B2:B10"]) { Console.WriteLine(" Value is: {0}", cell.Text); } Console.ReadKey(); // Pause the console to view output } // Import the IronXL library to access its functionality using IronXL; static void Main(string[] args) { // Access Excel file WorkBook wb = WorkBook.Load("sample.xlsx"); // Access WorkSheet of Excel file WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Get a specific cell value, convert it to a string, and print it string a = ws["A5"].Value.ToString(); Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a); Console.WriteLine("\nGetting Many Cells Value using Loop:\n"); // Get multiple cell values using range function and iterate through them foreach (var cell in ws["B2:B10"]) { Console.WriteLine(" Value is: {0}", cell.Text); } Console.ReadKey(); // Pause the console to view output } ' Import the IronXL library to access its functionality Imports Microsoft.VisualBasic Imports IronXL Shared Sub Main(ByVal args() As String) ' Access Excel file Dim wb As WorkBook = WorkBook.Load("sample.xlsx") ' Access WorkSheet of Excel file Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Get a specific cell value, convert it to a string, and print it Dim a As String = ws("A5").Value.ToString() Console.WriteLine("Getting Single Value:" & vbLf & vbLf & " Value of Cell A5: {0}", a) Console.WriteLine(vbLf & "Getting Many Cells Value using Loop:" & vbLf) ' Get multiple cell values using range function and iterate through them For Each cell In ws("B2:B10") Console.WriteLine(" Value is: {0}", cell.Text) Next cell Console.ReadKey() ' Pause the console to view output End Sub $vbLabelText $csharpLabel このコードは以下の結果を生み出します: class="center-image-wrapper"> Excelファイルが次のように表示されます: class="center-image-wrapper"> 私たちのExcelファイルsample.xlsxにA5セルにsmall businessが含まれているのを見ることができます。 B2からB10までの他の値は同じで、出力に表示されます。 DataSetとDataTables これらの指示を使用して、Excelファイルをデータセットやデータテーブルとして操作することもできます。 // Access WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Convert workbook to DataSet DataSet ds = wb.ToDataSet(); // Convert worksheet to DataTable DataTable dt = ws.ToDataTable(true); // Access WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Convert workbook to DataSet DataSet ds = wb.ToDataSet(); // Convert worksheet to DataTable DataTable dt = ws.ToDataTable(true); ' Access WorkBook and WorkSheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Convert workbook to DataSet Dim ds As DataSet = wb.ToDataSet() ' Convert worksheet to DataTable Dim dt As DataTable = ws.ToDataTable(True) $vbLabelText $csharpLabel Excel DataSetとDataTablesについてもっと読んで、プロセスについてのさらなるコード例と説明を提供します。 次に見るのは、新しいExcelファイルをC#プロジェクトで作成することに関する別の面です。 3. 新しいExcelファイルを作成 新しいExcelスプレッドシートを簡単に作成して、C#プロジェクトの中でプログラム的にデータを挿入できます。 これを達成するために、IronXLは新しいExcelファイルを作成するWorkBook.Create()関数を提供します。 必要に応じて、WorkBook.CreateWorkSheet()関数を使用して、より多くのWorkSheetを作成できます。 その後、次の例で示すようにデータを挿入することもできます: // Import the IronXL library using IronXL; static void Main(string[] args) { // Create a new WorkBook WorkBook wb = WorkBook.Create(); // Create a new WorkSheet in the workbook WorkSheet ws = wb.CreateWorkSheet("sheet1"); // Insert data into cells ws["A1"].Value = "New Value A1"; ws["B2"].Value = "New Value B2"; // Save the newly created Excel file wb.SaveAs("NewExcelFile.xlsx"); } // Import the IronXL library using IronXL; static void Main(string[] args) { // Create a new WorkBook WorkBook wb = WorkBook.Create(); // Create a new WorkSheet in the workbook WorkSheet ws = wb.CreateWorkSheet("sheet1"); // Insert data into cells ws["A1"].Value = "New Value A1"; ws["B2"].Value = "New Value B2"; // Save the newly created Excel file wb.SaveAs("NewExcelFile.xlsx"); } ' Import the IronXL library Imports IronXL Shared Sub Main(ByVal args() As String) ' Create a new WorkBook Dim wb As WorkBook = WorkBook.Create() ' Create a new WorkSheet in the workbook Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1") ' Insert data into cells ws("A1").Value = "New Value A1" ws("B2").Value = "New Value B2" ' Save the newly created Excel file wb.SaveAs("NewExcelFile.xlsx") End Sub $vbLabelText $csharpLabel 上記のコードは、NewExcelFile.xlsxという名前の新しいExcelファイルを作成し、セルアドレスA1とB2に、それぞれNew Value A1とNew Value B2という新しいデータを挿入します。 この設定により、必要なだけ同じ方法でデータを挿入できます。 注意: 新しいExcelファイルを作成するか、既存のものを変更する場合は、上記の例のようにファイルを保存するのを忘れないでください。 C#を使用して新しいExcelスプレッドシートを作成する方法をさらに掘り下げて、あなたのプロジェクトでコードを試してください。 4. 既存のExcelファイルを変更 既存のExcelファイルを変更し、プログラム的に更新データを挿入することができます。 Excelファイルの変更では、以下の側面を確認します: セルの値を更新 古い値を新しいものに置き換える 行または列を削除 上記のトピックをC#プロジェクトで実装する方法を見てみましょう。 セル値の更新 既存のExcelスプレッドシートのセル値を更新するのは非常に簡単です。 プロジェクトでExcelファイルにアクセスし、そのワークシートを指定して、次の例に示すようにデータを更新します: // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Update A3 cell value ws["A3"].Value = "New Value of A3"; // Save the updated Excel file wb.SaveAs("sample.xlsx"); } // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Update A3 cell value ws["A3"].Value = "New Value of A3"; // Save the updated Excel file wb.SaveAs("sample.xlsx"); } ' Import the IronXL library Imports IronXL Shared Sub Main(ByVal args() As String) ' Access the WorkBook and WorkSheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Update A3 cell value ws("A3").Value = "New Value of A3" ' Save the updated Excel file wb.SaveAs("sample.xlsx") End Sub $vbLabelText $csharpLabel 上記のコードは、A3セルの値をNew Value of A3に更新します。 範囲関数を使用して、静的な値で複数のセルを更新することもできます: ws["A3:C3"].Value = "New Value"; ws["A3:C3"].Value = "New Value"; ws("A3:C3").Value = "New Value" $vbLabelText $csharpLabel これにより、ExcelファイルのA3からC3までの3行目の行がNew Valueで更新されます。 C#での範囲関数の使用について、これらの例からもっと学びましょう。 セル値の置換 IronXLの強みの一つは、既存のExcelファイルでold valuesをnew valuesに簡単に置き換える能力です。以下のすべての側面をカバーします: 完全なワークシートの値を置換: ws.Replace("old value", "new value"); ws.Replace("old value", "new value"); ws.Replace("old value", "new value") $vbLabelText $csharpLabel 特定の行の値を置換: ws.Rows[RowIndex].Replace("old value", "new value"); ws.Rows[RowIndex].Replace("old value", "new value"); ws.Rows(RowIndex).Replace("old value", "new value") $vbLabelText $csharpLabel 特定の列の値を置換: ws.Columns[ColumnIndex].Replace("old value", "new Value"); ws.Columns[ColumnIndex].Replace("old value", "new Value"); ws.Columns(ColumnIndex).Replace("old value", "new Value") $vbLabelText $csharpLabel 特定の範囲の値を置換: ws["From:To"].Replace("old value", "new value"); ws["From:To"].Replace("old value", "new value"); ws("From:To").Replace("old value", "new value") $vbLabelText $csharpLabel C#プロジェクトでこれらの機能を使用して値を置換する方法を例で見てみましょう。 この例では、特定の範囲で値を置換するために置換機能を使用します。 // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Specify a range from B5 to G5 and replace "Normal" value with "Good" ws["B5:G5"].Replace("Normal", "Good"); // Save the updated Excel file wb.SaveAs("sample.xlsx"); } // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Specify a range from B5 to G5 and replace "Normal" value with "Good" ws["B5:G5"].Replace("Normal", "Good"); // Save the updated Excel file wb.SaveAs("sample.xlsx"); } ' Import the IronXL library Imports IronXL Shared Sub Main(ByVal args() As String) ' Access the WorkBook and WorkSheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Specify a range from B5 to G5 and replace "Normal" value with "Good" ws("B5:G5").Replace("Normal", "Good") ' Save the updated Excel file wb.SaveAs("sample.xlsx") End Sub $vbLabelText $csharpLabel 上記のコードは、Normal値をGoodでB5からG5まで置換し、残りのワークシートはそのままです。 IronXLのこの機能を使用して、範囲内のExcelセル値を編集する方法についてさらに詳しく確認してください。 Excelファイルの行を削除 アプリケーション開発では、既存のExcelファイルの全行をプログラム的に削除する必要があることが時折あります。 このタスクには、IronXLのRemove()関数を使用します。 以下は例です: // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Remove the row number 2 ws.Rows[2].Remove(); // Save the updated Excel file wb.SaveAs("sample.xlsx"); } // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Remove the row number 2 ws.Rows[2].Remove(); // Save the updated Excel file wb.SaveAs("sample.xlsx"); } ' Import the IronXL library Imports IronXL Shared Sub Main(ByVal args() As String) ' Access the WorkBook and WorkSheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Remove the row number 2 ws.Rows(2).Remove() ' Save the updated Excel file wb.SaveAs("sample.xlsx") End Sub $vbLabelText $csharpLabel 上記のコードはsample.xlsxの2行目を削除します。 class="tutorial-segment-title">チュートリアルクイックアクセス class="tutorial-section"> class="row"> class="col-sm-8"> IronXLリファレンス IronXLのAPIリファレンスを読んで、すべての機能、機能、クラス、および名前空間についてもっと学びましょう。 IronXLリファレンス class="col-sm-4"> class="tutorial-image"> チュートリアルクイックアクセス" class="img-responsive add-shadow img-responsive img-popup" src="/img/svgs/documentation.svg" loading="lazy"> よくある質問 Interopを使用せずにC#でExcelファイルをどのように読み取れますか? Interopを必要とせずにC#でExcelファイルを読むためにはIronXLを使用できます。WorkBook.Load() 関数を使用してファイルを読み込み、WorkBook.GetWorkSheet() でワークシートにアクセスします。 C#でプログラム的に新しいExcelファイルを作成するプロセスは? IronXLでは、WorkBook.Create() メソッドを使用して新しいExcelファイルを作成し、次にWorkSheet.CreateWorkSheet() を使用してデータを追加できます。 Interopを使用せずにC#でExcelファイルを変更することは可能ですか? はい、IronXLはInteropを使用せずにセルの値を更新、古い値を置換、行や列を直接削除してExcelファイルを編集する機能を提供します。 IronXLを使用してExcelシートの特定のセルの値をどのように更新しますか? セルの値を更新するには、WorkBook.GetWorkSheet() を使用してワークシートを読み込み、セルに新しい値を割り当て、その変更を保存します。 IronXLを使用してセル範囲内の値を置換することはできますか? IronXLでは、ワークシートまたは特定の範囲オブジェクト上でReplace() 関数を使用して範囲内の値を置換することができます。 Microsoft.Office.Interop.ExcelよりもIronXLを使用する利点は何ですか? IronXLは、使いやすいAPIを提供し、複雑なInteropコードの必要性を低減し、より良いパフォーマンスと信頼性を提供することでExcelファイル操作を簡素化します。 IronXLを使用してExcelファイルから行を削除するにはどうすればよいですか? IronXLでは、指定された行オブジェクトに対してRemove() 関数を使用して行を削除できます。 IronXLはExcelファイルをDataSetおよびDataTableに変換することをサポートしていますか? はい、IronXLはワークブックをDataSetに、ワークシートをDataTableに変換することをサポートしており、より柔軟なデータ操作が可能です。 C#プロジェクトにIronXLをどのようにインストールしますか? IronXLは、Iron Softwareのウェブサイトからダウンロードするか、NuGetパッケージマネージャーを使用して以下のコマンドでインストールできます:Install-Package IronXL.Excel。 IronXLは大規模なExcelファイルに適していますか? IronXLは大きなExcelファイルを効率的に処理するように最適化されており、従来のInteropメソッドと比較して、高速な処理速度と最小限のメモリ使用量を提供します。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 準備はいいですか? Nuget ダウンロード 1,686,155 | バージョン: 2025.11 ただ今リリースされました 試用ライセンスキーがメールで送信されました。 総ダウンロード数: 1,686,155 ライセンスを見る