C#Excel インターオペ ワークアラウンド
多くのプロジェクトは明確にコミュニケーションを取るためにExcelを使用しますが、Microsoft.Office.Interop.Excel
を使用している場合、多くの複雑なコード行に直面することが多いでしょう。 このチュートリアルでは、IronXLをC#のExcel Interopの代替手段として使用し、Interopを使用しなくてもプロジェクトを完了できるようにします。 Excel ファイルのデータを使用し、Excel ファイルを作成し、編集して操作することが、C# プログラミングを使用して可能です。
Excel Interopの代替使用方法
-
Excelファイルを処理するためのExcelライブラリをインストールします。
-
Workbook
を開き、現在のExcelファイルを追加します。 -
デフォルトのワークシートを設定します。
-
Excelワークブックから値を読み取る。
- プロセスし、価値を表示する。
ステップ 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無料ライブラリにアクセスしてから、このチュートリアルに従って、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
このコードは次の結果を生成します。
以下のようなExcelファイルである場合:
私たちは、Excelファイルの sample.xlsx
の A5
セルに 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)
以下での作業方法について詳しくは、 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
上記のコードは NewExcelFile.xlsx
という名前の新しいExcelファイルを作成し、各セルアドレス A1
と B1
にそれぞれ New Value A1
と New 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
上記のコードは、セル A3
の値を A3 の新しい値
に更新します。
次のように、範囲関数を使用して複数のセルに静的な値を更新することもできます:
ws ["A3:C3"].Value = "New Value";
ws ["A3:C3"].Value = "New Value";
ws ("A3:C3").Value = "New Value"
これは、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")
- 特定の行の値を置き換える:
WorkSheet.Rows [RowIndex].Replace("old value", "new value");
WorkSheet.Rows [RowIndex].Replace("old value", "new value");
WorkSheet.Rows (RowIndex).Replace("old value", "new value")
- 特定の列の値を置き換える:
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")
- 特定の範囲内の値を置き換える:
WorkSheet ["From:To"].Replace("old value", "new value");
WorkSheet ["From:To"].Replace("old value", "new value");
WorkSheet ("From:To").Replace("old value", "new value")
ここで、上記の機能を使用して値を置き換える方法を、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
上記のコードは 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
上記のコードは sample.xlsx
の2行目を削除します。