C#でExcelファイルを編集
開発者はC#でExcelファイルを修正および編集する際には慎重でなければなりません。なぜなら、ひとつのミスで全体のドキュメントが変わってしまうことがあるからです。 シンプルで効率的なコードに依存できることは、エラーのリスクを減らし、Excelファイルをプログラムで編集または削除しやすくします。 本日は、テスト済みの機能を使用して、正しくかつ迅速にC#でExcelファイルを編集するための手順を説明します。
C#でExcelファイルを編集する方法
- C#でExcelを編集するライブラリをダウンロード
- 特定のセル値を編集する
- Excelスプレッドシートの全行の値を静的値で編集する
- Excelスプレッドシートの全列の値を単一の値で編集する
- 動的な値でフル行を編集
- スプレッドシートの値を置換
- Excelワークシートから行を削除
- Excelファイルからワークシートを削除
ステップ 1
1. IronXLライブラリを使用してC#でExcelファイルを編集する
このチュートリアルでは、C#のExcelライブラリであるIronXLによって定義された関数を使用します。 これらの機能を使用するには、まずダウンロードしてプロジェクトにインストールする必要があります。(開発用に無料).
次のいずれかを選択できます。 IronXL.zipをダウンロード または、以下を通じてさらに詳しく読むとインストールを行います NuGetパッケージページ.
インストールが完了したら、始めましょう!
Install-Package IronXL.Excel
チュートリアルの方法
特定のセルの値を編集
まず、Excelスプレッドシートの特定のセルの値を編集する方法を見ていきます。
この目的のために、変更するExcelスプレッドシートをインポートし、そのワークシートにアクセスします。 以下のように変更を適用することができます。
/**
Import and Edit SpreadSheet
anchor-edit-specific-cell-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");//import Excel SpreadSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");//access specific workshet
ws.Rows [3].Columns [1].Value = "New Value";//access specific cell and modify its value
wb.SaveAs("sample.xlsx");//save changes
}
/**
Import and Edit SpreadSheet
anchor-edit-specific-cell-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");//import Excel SpreadSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");//access specific workshet
ws.Rows [3].Columns [1].Value = "New Value";//access specific cell and modify its value
wb.SaveAs("sample.xlsx");//save changes
}
'''
'''Import and Edit SpreadSheet
'''anchor-edit-specific-cell-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'import Excel SpreadSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'access specific workshet
ws.Rows (3).Columns (1).Value = "New Value" 'access specific cell and modify its value
wb.SaveAs("sample.xlsx") 'save changes
End Sub
Here are before and after screenshots of Excel SpreadSheet sample.xlsx
:
Before After
:---: :-----:
We can see how simple it is to modify the Excel SpreadSheet value.
If needed, there is also an alternative way to edit the specific cell value by cell address:
ws ["B4"].Value = "New Value"; //alternative way to access specific cell and apply changes
ws ["B4"].Value = "New Value"; //alternative way to access specific cell and apply changes
ws ("B4").Value = "New Value" 'alternative way to access specific cell and apply changes
行全体の値を編集
Excelスプレッドシートの全行の値を静的な値で編集するのは非常に簡単です。
/**
Edit Full Row Values
anchor-edit-full-row-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
/**
Edit Full Row Values
anchor-edit-full-row-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Full Row Values
'''anchor-edit-full-row-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")
ws.Rows (3).Value = "New Value"
wb.SaveAs("sample.xlsx")
End Sub
以下の「sample.xlsx」のスクリーンショットをご覧ください:
前 以下を日本語に翻訳してください:
After
:---: すみませんが、テキストが提供されていないため翻訳することができません。翻訳したい内容を入力していただけますか?
これに対して、範囲関数を使用することで、特定の行の範囲の値を編集することもできます。
ws ["A3:E3"].Value = "New Value";
ws ["A3:E3"].Value = "New Value";
ws ("A3:E3").Value = "New Value"
4. 列全体の値を編集
上記と同様に、Excelスプレッドシートの列全体の値を単一の値で簡単に編集できます。
/**
Edit Full Column Values
anchor-edit-full-column-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Columns [1].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
/**
Edit Full Column Values
anchor-edit-full-column-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Columns [1].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Full Column Values
'''anchor-edit-full-column-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")
ws.Columns (1).Value = "New Value"
wb.SaveAs("sample.xlsx")
End Sub
次のような sample.xlsx
スプレッドシートが生成されます:
前 以下を日本語に翻訳してください:
After
:---: すみませんが、テキストが提供されていないため翻訳することができません。翻訳したい内容を入力していただけますか?
動的な値を使用してフル行を編集
IronXLを使用すると、動的な値で特定の行を編集することも可能です。 これは、各セルに動的な値を割り当てることで、行全体を編集できることを意味します。 例を見てみましょう:
/**
Edit Row Dynamic Values
anchor-edit-full-row-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Columns.Count(); i++)
{
ws.Rows [3].Columns [i].Value = "New Value "+i.ToString();
}
wb.SaveAs("sample.xlsx");
}
/**
Edit Row Dynamic Values
anchor-edit-full-row-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Columns.Count(); i++)
{
ws.Rows [3].Columns [i].Value = "New Value "+i.ToString();
}
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Row Dynamic Values
'''anchor-edit-full-row-with-dynamic-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")
For i As Integer = 0 To ws.Columns.Count() - 1
ws.Rows (3).Columns (i).Value = "New Value " & i.ToString()
Next i
wb.SaveAs("sample.xlsx")
End Sub
下の表には、この出力からのExcelスプレッドシート sample.xlsx
のスクリーンショットが表示されています:
前 以下を日本語に翻訳してください:
After
:---: すみませんが、テキストが提供されていないため翻訳することができません。翻訳したい内容を入力していただけますか?
6. 動的な値で全列を編集
特定の列を動的な値で編集することも簡単です。
/**
Edit Column Dynamic Values
anchor-edit-full-column-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Rows.Count(); i++)
{
if (i == 0)//it is for if our first column is used as a header
continue;
ws.Rows [i].Columns [1].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
}
/**
Edit Column Dynamic Values
anchor-edit-full-column-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Rows.Count(); i++)
{
if (i == 0)//it is for if our first column is used as a header
continue;
ws.Rows [i].Columns [1].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Column Dynamic Values
'''anchor-edit-full-column-with-dynamic-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")
For i As Integer = 0 To ws.Rows.Count() - 1
If i = 0 Then 'it is for if our first column is used as a header
Continue For
End If
ws.Rows (i).Columns (1).Value = "New Value " & i.ToString()
Next i
wb.SaveAs("sample.xlsx")
End Sub
以下の sample.xlsx
の表結果に基づいて:
前 以下を日本語に翻訳してください:
After
:---: すみませんが、テキストが提供されていないため翻訳することができません。翻訳したい内容を入力していただけますか?
7. スプレッドシートの値の置き換え
Excelスプレッドシート内の任意の値を更新された値に置き換えたい場合、Replace
という関数を使用できます。 この機能を使用すると、任意の状況に応じてExcelスプレッドシートのデータを置き換えることができます。
7.1. 特定の値を完全なワークシートで置き換える
特定の値を最新の値に置き換えるためには、単にExcelのワークシート ws
にアクセスします。(上記の例と同じように)このように Replace
関数を適用します。
/**
Replace Cell Values
anchor-replace-specific-value-of-complete-worksheet
**/
ws.Replace("old value", "new value");
/**
Replace Cell Values
anchor-replace-specific-value-of-complete-worksheet
**/
ws.Replace("old value", "new value");
'''
'''Replace Cell Values
'''anchor-replace-specific-value-of-complete-worksheet
'''*
ws.Replace("old value", "new value")
この関数は、完全なExcelワークシート内の old value
を new value
に置き換えます。
上記の例に示されているように、変更後はファイルを保存することを忘れないでください。
7.2. 特定の行の値を置き換える
特定の行だけを変更し、ワークシートの残り全体を変更しない場合は、次のコードを使用します。
ws.Rows [2].Replace("old value", "new value");
ws.Rows [2].Replace("old value", "new value");
ws.Rows (2).Replace("old value", "new value")
上記のコードは、行番号「2」でのみ「old value」を「new value」に置き換えます。 残りのWorkSheetは同じままです。
7.3. 行範囲の値を置換する
次のように、特定の範囲内の値を置き換えることもできます:
ws ["From Cell Address : To Cell Address"].Replace("old value", "new value");
ws ["From Cell Address : To Cell Address"].Replace("old value", "new value");
ws ("From Cell Address : To Cell Address").Replace("old value", "new value")
次のように書きます:古い値を新しい値に置き換えたい場合、行番号4
のB4
からE4
の範囲内でのみ。
ws ["B4:E4"].Replace("old value", "new value");
ws ["B4:E4"].Replace("old value", "new value");
ws ("B4:E4").Replace("old value", "new value")
7.4. 特定の列の値を置き換える
特定の列の値を置き換えることもでき、そのほかのワークシートは同じままです。
ws.Columns [1].Replace("old value", "new Value")
ws.Columns [1].Replace("old value", "new Value")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'ws.Columns [1].Replace("old value", "new Value")
上記のコードは、列番号「1」について「old value」を「new value」に置き換えます。
カラム範囲の値を置き換える
次の方法で、特定の列の範囲内で置換するために range 関数を使用することもできます。
ws ["B5:B10"].Replace("old value", "new value");
ws ["B5:B10"].Replace("old value", "new value");
ws ("B5:B10").Replace("old value", "new value")
上記のコードは、列 B
の範囲 B5
から B10
の間で old value
を new value
に置き換えます。
- Excelワークシートから行を削除
IronXLは、Excelワークシートの特定の行を削除するための非常に簡単な機能を提供します。 例を見てみましょう。
/**
Remove Row
anchor-remove-row-from-excel-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].RemoveRow();
wb.SaveAs("sample.xlsx");
}
/**
Remove Row
anchor-remove-row-from-excel-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].RemoveRow();
wb.SaveAs("sample.xlsx");
}
'''
'''Remove Row
'''anchor-remove-row-from-excel-worksheet
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
ws.Rows (3).RemoveRow()
wb.SaveAs("sample.xlsx")
End Sub
上記のコードは、以下の表に示すように sample.xlsx
の3行目を削除します:
前 以下を日本語に翻訳してください:
After
:---: すみませんが、テキストが提供されていないため翻訳することができません。翻訳したい内容を入力していただけますか?
Excelファイルからワークシートを削除
Excelファイルの完全なワークシートを削除したい場合は、以下の方法を使用できます。
/**
Remove Worksheet from File
anchor-remove-worksheet-from-excel-file
**/
wb.RemoveWorkSheet(1); // by sheet indexing
/**
Remove Worksheet from File
anchor-remove-worksheet-from-excel-file
**/
wb.RemoveWorkSheet(1); // by sheet indexing
'''
'''Remove Worksheet from File
'''anchor-remove-worksheet-from-excel-file
'''*
wb.RemoveWorkSheet(1) ' by sheet indexing
wb
は、上記の例と同じようにワークブックです。 名前でワークシートを削除したい場合は、次のようにします:
wb.RemoveWorkSheet("Sheet1"); //by sheet name
wb.RemoveWorkSheet("Sheet1"); //by sheet name
wb.RemoveWorkSheet("Sheet1") 'by sheet name
IronXLには、Excelスプレッドシートであらゆる種類の編集や削除を簡単に実行できる多くの機能が豊富に揃っています。 プロジェクトでの使用に関して質問がある場合は、ぜひ弊社の開発チームにお問い合わせください。
ライブラリ クイック アクセス
IronXLライブラリドキュメント
IronXL C#ライブラリの全機能を探求し、Excelワークブックの編集、削除、スタイリング、および完璧化のためのさまざまな機能を活用してください。
IronXLライブラリドキュメント