C# 用 Excel アドイン (コード例チュートリアル)
アプリケーションを開発する際、Excelスプレッドシートを使用せずにデータを管理し、それでもファイルと通信できる必要があります。 たとえば、既存のExcelスプレッドシートにプログラム的に新しい行や列を挿入する必要があるかもしれません。 C#で「Excel:追加」という概念の機能を使用すると、これらすべてを追加することができます。 以下の例をご覧ください。
C#でExcelアドインを使用する方法
- Excel C# ライブラリのダウンロードとインストール
- C#で既存のExcelスプレッドシートに新しい行と列を追加
- 最初および最後の位置に行を挿入
- C# 関数を利用して列を追加する
- さまざまな形式で完全なExcelファイルを希望の場所にエクスポートする
ステップ 1
1. IronXL Excel ライブラリのダウンロード
Excelで行と列を追加する機能にアクセスするには、まずIronXL Excel Libraryをダウンロードする必要があります。 これはあなたのプロジェクトでの開発に無料で利用できます。 DLLを直接ダウンロードするまたは、あなたはそのNuGetインストール方法.
Install-Package IronXL.Excel
チュートリアルの方法
C#でExcelに行を追加する
IronXLをインストールしたので、C#プログラミングを使用して既存のExcelスプレッドシートに新しい行と列を挿入するのが簡単になります。
まず、Excelスプレッドシートにアクセスし、行や列を追加する必要があるワークシートを指定します。
最後に行を追加
最初の例では、新しい行を最後の位置に追加する方法を示します。
私たちのExcelファイルが sample.xlsx
という名前で、A
から E
までの5
列があるとします。 以下のメソッドを使用して新しい行を追加できます:
/**
Add Row Last Position
anchor-add-row-in-last-position
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
int i = ws.Rows.Count() + 1;
ws ["A" + i].Value = "New Row";
ws ["B" + i].Value = "New Row";
ws ["C" + i].Value = "New Row";
ws ["D" + i].Value = "New Row";
ws ["E" + i].Value = "New Row";
wb.SaveAs("sample.xlsx");
}
/**
Add Row Last Position
anchor-add-row-in-last-position
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
int i = ws.Rows.Count() + 1;
ws ["A" + i].Value = "New Row";
ws ["B" + i].Value = "New Row";
ws ["C" + i].Value = "New Row";
ws ["D" + i].Value = "New Row";
ws ["E" + i].Value = "New Row";
wb.SaveAs("sample.xlsx");
}
'''
'''Add Row Last Position
'''anchor-add-row-in-last-position
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
Dim i As Integer = ws.Rows.Count() + 1
ws ("A" & i).Value = "New Row"
ws ("B" & i).Value = "New Row"
ws ("C" & i).Value = "New Row"
ws ("D" & i).Value = "New Row"
ws ("E" & i).Value = "New Row"
wb.SaveAs("sample.xlsx")
End Sub
これはExcelスプレッドシート sample.xlsx
の最後の位置に値 New Row
を持つ新しい行を作成します。
2.2. 最初の位置に行を追加する
エクセルスプレッドシートの最初の位置に新しい行を追加するのも非常に簡単です。
この目的のために、まず既存のすべての行を次の行に移動し、最初の行スロットが追加可能な状態にします。
以下は、Excelスプレッドシートの最初の位置に新しい行を追加する方法の例です。
/**
Add Row First Position
anchor-add-row-in-first-position
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
int j = ws.Rows.Count() + 1;
for (int i = 1; i <= ws.Rows.Count(); i++)
{
if (j == 0)
{
ws.Rows [0].Value = "new row";
break;
};
ws ["A" + (j + 1)].Value = ws ["A" + j].Value;
ws ["B" + (j + 1)].Value = ws ["B" + j].Value;
ws ["C" + (j + 1)].Value = ws ["C" + j].Value;
ws ["D" + (j + 1)].Value = ws ["D" + j].Value;
ws ["E" + (j + 1)].Value = ws ["E" + j].Value;
j = j - 1;
}
wb.SaveAs("sample.xlsx");
}
/**
Add Row First Position
anchor-add-row-in-first-position
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
int j = ws.Rows.Count() + 1;
for (int i = 1; i <= ws.Rows.Count(); i++)
{
if (j == 0)
{
ws.Rows [0].Value = "new row";
break;
};
ws ["A" + (j + 1)].Value = ws ["A" + j].Value;
ws ["B" + (j + 1)].Value = ws ["B" + j].Value;
ws ["C" + (j + 1)].Value = ws ["C" + j].Value;
ws ["D" + (j + 1)].Value = ws ["D" + j].Value;
ws ["E" + (j + 1)].Value = ws ["E" + j].Value;
j = j - 1;
}
wb.SaveAs("sample.xlsx");
}
'''
'''Add Row First Position
'''anchor-add-row-in-first-position
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
Dim j As Integer = ws.Rows.Count() + 1
For i As Integer = 1 To ws.Rows.Count()
If j = 0 Then
ws.Rows (0).Value = "new row"
Exit For
End If
ws ("A" & (j + 1)).Value = ws ("A" & j).Value
ws ("B" & (j + 1)).Value = ws ("B" & j).Value
ws ("C" & (j + 1)).Value = ws ("C" & j).Value
ws ("D" & (j + 1)).Value = ws ("D" & j).Value
ws ("E" & (j + 1)).Value = ws ("E" & j).Value
j = j - 1
Next i
wb.SaveAs("sample.xlsx")
End Sub
以下のコードによって sample.xlsx
ドキュメントに行われた変更を比較しましょう。
前 以下を日本語に翻訳してください:
After
:---: すみませんが、テキストが提供されていないため翻訳することができません。翻訳したい内容を入力していただけますか?
ここでは、以前は sample.xlsx
ファイルに 10
行があったことがわかります。 先頭に新しい行が追加され、行数が 11
から11行になりました。
最初の行に列ヘッダーを追加
最初の列がヘッダ名である場合、ループのブレーク条件を0行に変更し、新しい行を位置1に追加することができます。
C#でExcelに列を追加
既存のExcelスプレッドシートに新しい列を追加することも、私たちのC#プロジェクトで行います。
私たちが sample.xlsx
というExcelスプレッドシートにAからEまでの5つの列を持っていると仮定し、最初の位置、列Aに新しい列を追加したいとします。 以下のコードサンプルをご覧ください。
/**
Add Column
anchor-excel-add-column-in-c-num
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 1; i <= ws.Rows.Count(); i++)
{
ws ["F" + i].Value = ws ["E" + i].Value;
ws ["E" + i].Value = ws ["D" + i].Value;
ws ["D" + i].Value = ws ["C" + i].Value;
ws ["C" + i].Value = ws ["B" + i].Value;
ws ["B" + i].Value = ws ["A" + i].Value;
ws ["A" + i].Value = "New Column Added";
}
wb.SaveAs("sample.xlsx");
}
/**
Add Column
anchor-excel-add-column-in-c-num
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 1; i <= ws.Rows.Count(); i++)
{
ws ["F" + i].Value = ws ["E" + i].Value;
ws ["E" + i].Value = ws ["D" + i].Value;
ws ["D" + i].Value = ws ["C" + i].Value;
ws ["C" + i].Value = ws ["B" + i].Value;
ws ["B" + i].Value = ws ["A" + i].Value;
ws ["A" + i].Value = "New Column Added";
}
wb.SaveAs("sample.xlsx");
}
'''
'''Add Column
'''anchor-excel-add-column-in-c-num
'''*
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 = 1 To ws.Rows.Count()
ws ("F" & i).Value = ws ("E" & i).Value
ws ("E" & i).Value = ws ("D" & i).Value
ws ("D" & i).Value = ws ("C" & i).Value
ws ("C" & i).Value = ws ("B" & i).Value
ws ("B" & i).Value = ws ("A" & i).Value
ws ("A" & i).Value = "New Column Added"
Next i
wb.SaveAs("sample.xlsx")
End Sub
上記のコードによる sample.xlsx
の変更を見てみましょう:
前 以下を日本語に翻訳してください:
After
:---: すみませんが、テキストが提供されていないため翻訳することができません。翻訳したい内容を入力していただけますか?
新しい列が最初の位置Aに追加され、残りの列は後ろに押し出されたため、現在AからFまで合計で6つの列があります。
ライブラリ クイック アクセス