更新済み 2024年10月20日
共有:

C# 用 Excel アドイン (コード例チュートリアル)

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

アプリケーションを開発する際、Excelスプレッドシートを使用せずにデータを管理し、それでもファイルと通信できる必要があります。 たとえば、既存の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
$vbLabelText   $csharpLabel

これは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
$vbLabelText   $csharpLabel

以下のコードによって 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
$vbLabelText   $csharpLabel

上記のコードによる sample.xlsx の変更を見てみましょう:

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

After

:---: すみませんが、テキストが提供されていないため翻訳することができません。翻訳したい内容を入力していただけますか?

前 後

新しい列が最初の位置Aに追加され、残りの列は後ろに押し出されたため、現在AからFまで合計で6つの列があります。


ライブラリ クイック アクセス

IronXLのドキュメントを読む

IronXLのドキュメントを読んで、行や列の追加、その他のExcel C#機能に関する情報を確認してください。

IronXLのドキュメントを読む
Documentation related to C#でExcelに列を追加
チャクニット・ビン

チャクニット・ビン

ソフトウェアエンジニア

 LinkedIn

ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。