C# Excel Add in (代码示例教程)

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

在开发应用程序时,您需要能够在不使用 Excel 电子表格的情况下管理数据,但仍能与文件进行通信。例如,您可能需要以编程方式在现有 Excel 电子表格中插入新行或新列。使用 C# 中的总括概念 "Excel.Add "函数,我们就可以在现有 Excel 电子表格中插入新行或新列:添加 "的函数,我们可以添加所有这些内容,甚至更多。请看下面的示例。


步骤 1

1.下载 IronXL Excel 库

要访问 Excel 中添加行和列的函数,我们首先需要下载 IronXL Excel 库。该库可在您的项目中免费开发。 直接下载 DLL 或使用 NuGet 安装方法.


Install-Package IronXL.Excel

教程

2.Excel 在 C&num 中添加行;

既然我们已经安装了 IronXL,那么使用 C# 编程在现有 Excel 电子表格中插入新行和新列就很容易了。

首先,访问 Excel 电子表格并指定需要添加新行或新列的工作表。

2.1.在最后一个位置添加行

在第一个示例中,我们将演示如何在最后一个位置添加新行。

假设 Excel 文件名为 sample.xlsx,有从 AE5 列。使用以下方法我们可以添加新行:

/**
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
VB   C#

这将在 Excel 电子表格 sample.xlsx 的最后一个位置创建新行,其值为 New Row

2.2.在第一位置添加行

在 Excel 电子表格的第一个位置添加新行也非常简单。

为此,我们首先要将所有现有行移动到下一行,这样第一行的位置就可以用来添加新行了。

让我们看看如何在 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
VB   C#

让我们比较一下上述代码在我们的 sample.xlsx 文档中所做的更改。

之前 之后

:---: :-----:

之前 后

在这里我们可以看到,之前的sample.xlsx文件有10行。在第一个位置添加新行后,它11变成了 11 行。

2.3.在第一行中添加行标题和列标题

如果我们将第一列作为列头名称,那么就可以在第 0 行更改循环中断条件,并在第 1 位添加新行。


3.Excel 在 C&num 中添加列;

在现有 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
VB   C#

让我们查看上述代码在 sample.xlsx 中所做的更改:

之前 之后

:---: :-----:

之前 后

我们可以看到,在第一个位置 A 增加了新列,其他列被推后,因此现在从 A 到 F 共有 6 列。


图书馆快速访问

阅读 IronXL 文档

请阅读 IronXL 文档,了解更多有关添加行、列和其他 Excel C# 功能的函数和信息。

阅读 IronXL 文档