C# Excel 插件(代码示例教程)

查克尼特·宾
查克尼特·宾
2020年七月19日
更新 2024年十月20日
分享:
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库。 这对您的项目开发是免费的。 直接下载DLL,或者您可以使用NuGet安装方法

Install-Package IronXL.Excel

教程

2. 在C#中添加Excel行

现在我们已经安装了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
$vbLabelText   $csharpLabel

这将在 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
$vbLabelText   $csharpLabel

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

之前 之后

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

之前 之后

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

2.3. 在首行添加带有列标题的行

如果我们将第一列作为标题名,则可以在第0行更改循环终止条件,并在位置1处添加新行。


3. 在C#中添加Excel列

还需要在我们的C#项目中的现有Excel电子表格中添加一个新列。

假设我们的Excel电子表格sample.xlsx中有5列,从A到E,现在我们要在第一个位置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中的更改:

之前 之后

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

之前 后

我们可以看到新列被添加在第一个位置A,并且其余列都向后推移,因此我们现在总共有从A到F的6列。


图书馆快速访问

阅读 IronXL 文档

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

阅读 IronXL 文档
Documentation related to 3. 在C#中添加Excel列
查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。