C#Excel インターオペ ワークアラウンド

This article was translated from English: Does it need improvement?
Translated
View the article in English

多くのプロジェクトは明確にコミュニケーションを取るためにExcelを使用しますが、Microsoft.Office.Interop.Excelを使用している場合、多くの複雑なコード行に直面することが多いでしょう。 このチュートリアルでは、IronXLをC#のExcel Interopの代替手段として使用し、Interopを使用しなくてもプロジェクトを完了できるようにします。 Excel ファイルのデータを使用し、Excel ファイルを作成し、編集して操作することが、C# プログラミングを使用して可能です。


Excel Interopの代替使用方法

  1. Excelファイルを処理するためのExcelライブラリをインストールします。

  2. Workbookを開き、現在のExcelファイルを追加します。

  3. デフォルトのワークシートを設定します。

  4. Excelワークブックから値を読み取る。

  5. プロセスし、価値を表示する。

    ステップ 1

1. IronXLライブラリをダウンロード

IronXLライブラリをダウンロード はい、以下の内容を日本語に翻訳いたします:

以下の内容を日本語に翻訳してください:

IronPDF allows developers to generate, edit and read PDF files in .NET applications. It simplifies the process of integrating PDF functionalities into software development projects.

Let's get started! NuGetでインストール 無料ライブラリにアクセスしてから、このチュートリアルに従って、Interopを使用せずにExcelを使用する方法を学びましょう。プロジェクトを本番環境で使用したい場合は、ライセンスが利用可能です。

Install-Package IronXL.Excel

チュートリアルの方法

2. Excelファイルデータへのアクセス

ビジネスアプリケーションを開発するためには、Excelファイルからのデータに簡単かつ完璧にアクセスでき、さまざまな要件に従ってプログラムで操作できる能力が必要です。 IronXLを使用して、WorkBook.Load()特定のExcelファイルを読み取るアクセス権を提供するfunction`。

ワークブックにアクセスした後、WorkBook.GetWorkSheet を使用して特定のワークシートを選択できます。()` 関数。 これで、すべてのExcelファイルデータが利用可能になりました。 以下の例をご覧ください。これらの関数を使用してC#プロジェクトでExcelファイルのデータを取得する方法を示しています。

/**
Access File Data
anchor-access-excel-file-data
**/
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 specific cell value
    string a = ws ["A5"].Value.ToString();
    Console.WriteLine(" Getting Single Value:\n\n   Value of Cell A5: {0} ",a);
    Console.WriteLine("\n Getting Many Cells Value using Loop:\n");
    //get many cell values using range function
    foreach (var cell in ws ["B2:B10"])
    {
        Console.WriteLine("   Value is: {0}", cell.Text);
    }
    Console.ReadKey();
}
/**
Access File Data
anchor-access-excel-file-data
**/
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 specific cell value
    string a = ws ["A5"].Value.ToString();
    Console.WriteLine(" Getting Single Value:\n\n   Value of Cell A5: {0} ",a);
    Console.WriteLine("\n Getting Many Cells Value using Loop:\n");
    //get many cell values using range function
    foreach (var cell in ws ["B2:B10"])
    {
        Console.WriteLine("   Value is: {0}", cell.Text);
    }
    Console.ReadKey();
}
'''
'''Access File Data
'''anchor-access-excel-file-data
'''*
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 specific cell value
	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 many cell values using range function
	For Each cell In ws ("B2:B10")
		Console.WriteLine("   Value is: {0}", cell.Text)
	Next cell
	Console.ReadKey()
End Sub
VB   C#

このコードは次の結果を生成します。

以下のようなExcelファイルである場合:

私たちは、Excelファイルの sample.xlsxA5 セルに small business があることを確認できます。 「B2」から「B10」までの他の値は同じで、出力に表示されます。

データセットとデータテーブル

私たちは、Excelファイルをデータセットやデータテーブルとして使用することもできます。以下の手順を参照してください。

/**
DataSet and DataTables
anchor-dataset-and-datatables
**/
//Access WorkBook.          
WorkBook wb = WorkBook.Load("sample.xlsx");
//Access WorkSheet.
 WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Behave with a workbook as Dataset.
DataSet ds = wb.ToDataSet(); 
//Behave with workbook as DataTable
DataTable dt = ws.ToDataTable(true);
/**
DataSet and DataTables
anchor-dataset-and-datatables
**/
//Access WorkBook.          
WorkBook wb = WorkBook.Load("sample.xlsx");
//Access WorkSheet.
 WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Behave with a workbook as Dataset.
DataSet ds = wb.ToDataSet(); 
//Behave with workbook as DataTable
DataTable dt = ws.ToDataTable(true);
'''
'''DataSet and DataTables
'''anchor-dataset-and-datatables
'''*
'Access WorkBook.          
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
'Access WorkSheet.
 Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'Behave with a workbook as Dataset.
Dim ds As DataSet = wb.ToDataSet()
'Behave with workbook as DataTable
Dim dt As DataTable = ws.ToDataTable(True)
VB   C#

以下での作業方法について詳しくは、 ExcelのDataSetとDataTables, より多くのコード例とプロセスに関する説明を提供します。

では、次に、C#プロジェクトで新しいExcelファイルを作成する方法について見ていきます。


新しいExcelファイルを作成する

私たちは、CSharpプロジェクトでプログラムによって新しいExcelスプレッドシートを簡単に作成し、データを挿入できます。 これを達成するために、IronXLは WorkBook.Create を提供します。()新しいExcelファイルを作成する function

次に、WorkBook.CreateWorkSheet を使って必要に応じて多くのワークシートを作成できます。()` 関数。

その後、以下の例に示すようにデータを挿入することもできます:

/**
Create New Excel 
anchor-create-new-excel-file
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook
    WorkBook wb = WorkBook.Create();
    //Create new WorkSheet in wb
    WorkSheet ws = wb.CreateWorkSheet("sheet1");
    //Insert Data 
    ws ["A1"].Value = "New Value A1";
    ws ["B2"].Value = "New Value B2";
    //Save newly created Excel file
    wb.SaveAs("NewExcelFile.xlsx");
}
/**
Create New Excel 
anchor-create-new-excel-file
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook
    WorkBook wb = WorkBook.Create();
    //Create new WorkSheet in wb
    WorkSheet ws = wb.CreateWorkSheet("sheet1");
    //Insert Data 
    ws ["A1"].Value = "New Value A1";
    ws ["B2"].Value = "New Value B2";
    //Save newly created Excel file
    wb.SaveAs("NewExcelFile.xlsx");
}
'''
'''Create New Excel 
'''anchor-create-new-excel-file
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'create new WorkBook
	Dim wb As WorkBook = WorkBook.Create()
	'Create new WorkSheet in wb
	Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1")
	'Insert Data 
	ws ("A1").Value = "New Value A1"
	ws ("B2").Value = "New Value B2"
	'Save newly created Excel file
	wb.SaveAs("NewExcelFile.xlsx")
End Sub
VB   C#

上記のコードは NewExcelFile.xlsx という名前の新しいExcelファイルを作成し、各セルアドレス A1B1 にそれぞれ New Value A1New Value B2 の値を挿入します。 この設定を行うことで、必要なだけデータを同じ方法で挿入することができます。 注意: 新しいExcelファイルを作成する場合や既存のファイルを修正する場合は、上記の例に示されているようにファイルを保存することを忘れないでください。 深く掘り下げて方法を探る C#を使用して新しいExcelスプレッドシートを作成する お使いのプロジェクトでコードを試してください。


4. 既存のExcelファイルを修正する

既存のExcelファイルを変更し、プログラムを使って更新されたデータを挿入することができます。 Excelファイルの変更において、以下の側面を見ていきます:

  • セル値を更新する
  • 古い値を新しいものに置き換える

  • 行または列を削除

    上記のトピックをCSharpプロジェクトに実装する方法を見てみましょう。

セル値を更新

既存のExcelスプレッドシートのセル値を更新するのは非常に簡単です。 プロジェクト内のExcelファイルにアクセスし、その作業シートを指定して、以下の例のようにデータを更新してください。

/**
Update Cell Value
anchor-update-cell-value
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //update A3 value
    ws ["A3"].Value = "New Value of A3";
    wb.SaveAs("sample.xlsx");
}
/**
Update Cell Value
anchor-update-cell-value
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //update A3 value
    ws ["A3"].Value = "New Value of A3";
    wb.SaveAs("sample.xlsx");
}
'''
'''Update Cell Value
'''anchor-update-cell-value
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'update A3 value
	ws ("A3").Value = "New Value of A3"
	wb.SaveAs("sample.xlsx")
End Sub
VB   C#

上記のコードは、セル A3 の値を A3 の新しい値 に更新します。

次のように、範囲関数を使用して複数のセルに静的な値を更新することもできます:

 ws ["A3:C3"].Value = "New Value";
 ws ["A3:C3"].Value = "New Value";
ws ("A3:C3").Value = "New Value"
VB   C#

これは、ExcelファイルのA3からC3のセルに対して、新しい値を設定して、行番号3を更新します。

使用方法について詳しく学ぶ Range関数 (C#) 以下の例と共に。

セル値の置換

IronXLの美しさは、既存のExcelファイル内の古い値を簡単に新しい値に置き換えることができ、以下のすべての側面をカバーしている点です:

  • ワークシート全体の値を置換する:
 WorkSheet.Replace("old value", "new value");
 WorkSheet.Replace("old value", "new value");
WorkSheet.Replace("old value", "new value")
VB   C#
  • 特定の行の値を置き換える:
WorkSheet.Rows [RowIndex].Replace("old value", "new value");
WorkSheet.Rows [RowIndex].Replace("old value", "new value");
WorkSheet.Rows (RowIndex).Replace("old value", "new value")
VB   C#
  • 特定の列の値を置き換える:
WorkSheet.Columns [ColumnIndex].Replace("old value", "new Value")
WorkSheet.Columns [ColumnIndex].Replace("old value", "new Value")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet.Columns [ColumnIndex].Replace("old value", "new Value")
VB   C#
  • 特定の範囲内の値を置き換える:
WorkSheet ["From:To"].Replace("old value", "new value");
WorkSheet ["From:To"].Replace("old value", "new value");
WorkSheet ("From:To").Replace("old value", "new value")
VB   C#

ここで、上記の機能を使用して値を置き換える方法を、CSharpプロジェクトの例で具体的に見てみましょう。 これには、特定の範囲で値を置き換えるためにreplace関数を使用します。

/**
Replace Cell Value Range
anchor-replace-cell-values
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Specifying Range from B5 to G5
    ws ["B5:G5"].Replace("Normal", "Good");
    wb.SaveAs("sample.xlsx");
}
/**
Replace Cell Value Range
anchor-replace-cell-values
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Specifying Range from B5 to G5
    ws ["B5:G5"].Replace("Normal", "Good");
    wb.SaveAs("sample.xlsx");
}
'''
'''Replace Cell Value Range
'''anchor-replace-cell-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'Specifying Range from B5 to G5
	ws ("B5:G5").Replace("Normal", "Good")
	wb.SaveAs("sample.xlsx")
End Sub
VB   C#

上記のコードは B5 から G5 までの Normal 値を Good に置き換えますが、それ以外の WorkSheet は変更されません。 以下について詳細をご覧ください 範囲内のExcelセル値を編集する およびこのIronXLの機能を使用して。

Excelファイルの行を削除

アプリケーション開発において、既存のExcelファイルの行全体をプログラムで削除する必要がある場合があります。 このタスクのために、`RemoveRow()IronXLの関数 Here's an example: 例があります。

/**
Remove Row
anchor-remove-rows-of-excel-file
**/
using IronXL;
static void Main(string [] args)
{ 
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Remove the row number 2
    ws.Rows [2].RemoveRow();
    wb.SaveAs("sample.xlsx");
}
/**
Remove Row
anchor-remove-rows-of-excel-file
**/
using IronXL;
static void Main(string [] args)
{ 
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Remove the row number 2
    ws.Rows [2].RemoveRow();
    wb.SaveAs("sample.xlsx");
}
'''
'''Remove Row
'''anchor-remove-rows-of-excel-file
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'Remove the row number 2
	ws.Rows (2).RemoveRow()
	wb.SaveAs("sample.xlsx")
End Sub
VB   C#

上記のコードは sample.xlsx の2行目を削除します。


チュートリアル クイック アクセス

IronXL リファレンス

IronXLのAPIリファレンスを読んで、すべての機能、特徴、クラス、および名前空間について詳しく知りましょう。

IronXL リファレンス