跳至页脚内容
使用 IRONXL

如何在 Excel 中移动行

多年来,Excel 一直是最受欢迎的数据操作形式之一,数百万电脑用户每天使用这个电子表格进行工作或个人记账需要。 它可用于超过 14 亿台基于 Windows 的 PC,这大约占世界人口的 45%。 Excel 是一个强大的数据分析工具,可以进行往返编辑、排序、筛选、数据透视表和图表。 它也是商业世界中最受欢迎的工具之一,每天有超过 400 万人积极使用它。 列和行标题、列字母和行数字是 Excel 电子表格的主要功能。 通过使用列字母和行数字,您可以定位 Excel 中的任何单元格。

Excel 在企业中的受欢迎程度创造了一个环境,用户可以选择多个昂贵版本,这些版本提供更多功能和财务分析,包括"专业版"。 此版本的 Excel 通常用于业务环境,功能可实现更高水平的数据分析,先进的图表功能,以及与第三方应用程序的协调。 Excel 是一个电子表格程序,具有类似 Microsoft Word 的界面,允许用户使用公式创建和分析数据。

让我们来看看如何在 Excel 中移动行或列。

在 Microsoft Excel 中移动整行

我们可以在 Microsoft Excel 中移动行或选择的单元格。 有几种方法可以做到这一点。 假设我们在 Microsoft Excel 中有这些行,我们需要移动一行。 我们现在可以检查如何完成这项工作。

拖放

如何在 Excel 中移动行,图 1:Excel 中的原始数据行 Excel 中的原始数据行

按照以下步骤,移动行:

  • 选择您想要移动的行。
  • 按住 Shift 键,将光标移动到所选行的角落。 会弹出一个四边形图标。

如何在 Excel 中移动行,图 2:使用拖放移动数据 使用拖放移动数据

  • 按住 Shift 键并单击边缘(用左键)。
  • 将其移动到您希望该行移动的行。
  • 当您在行底部看到粗线时,释放鼠标按钮。 然后也释放 Shift 键。 重要的是在最后一刻之前一直按住 Shift 键。

这些步骤也可以用于选择的单元格。 如果您想移动整个列,您可以选择整个列,然后按照相同的步骤进行操作。

剪切和粘贴方法

剪切和粘贴方法是移动行和列的简单方法。 您可以不使用拖放方法,也不需要插入新行或新列。 按照步骤在 Excel 中移动整个行或多个连续行。

  • 在 Microsoft Excel 中选择要移动的行或多行。
  • 按 Ctrl 键同时按 X 键以剪切所选行。 (Ctrl + X)

如何在 Excel 中移动行,图 3:剪切所选行 剪切所选行

  • 现在转到您希望移动该行的行。
  • 在 Excel 中右键单击该行,从右键菜单中选择插入剪切单元格选项。

如何在 Excel 中移动行,图 4:从右键菜单粘贴行 从右键菜单粘贴行

  • 它将粘贴所选行,其他行将向上移动。

如何在 Excel 中移动行,图 5:剪切和粘贴方法后的结果 剪切和粘贴方法后的结果

使用这种方法,在 Excel 中移动整个行或列变得非常容易。 通过遵循相同的技术,您也可以移动列。 只需选择列,所有操作将在所选列上执行。

IronXL:C# Excel 库

IronXL 是一个供开发人员编辑和保存 Excel 文件的 .NET C# Excel 库。 它旨在帮助开发人员快速创建、编辑和保存 Excel 文件,而无需安装 Microsoft Excel。

IronXL Excel 库专为 .NET C# 开发人员设计,以无须在其机器上安装 Microsoft Excel 即可编辑和保存 Excel 文件。 IronXL Excel 库是一个强大的工具,任何需要在项目中处理 Excel 电子表格的开发人员都可以使用。 IronXL 库包含了许多标准 Microsoft Excel 库中未提供的功能。 其中包括:

  • 具有列筛选、排序和分组功能的数据表可视化
  • 数据验证功能
  • 从现有电子表格中提取数据到新的表格
  • 带有颜色方案、标题、轴标签等自定义功能的交互式图表
  • 可以导出图表为图像或 PDF 文件的能力
  • 可定制的数据透视表来展示复杂数据集

以下是向 Excel 文件的首个位置添加行的代码:

using IronXL;

static void Main(string[] args)
{
    // Load the Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");

    // Get the worksheet named "Sheet1"
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Start from the last row and prepare to push all rows down by one
    int j = ws.Rows.Count() + 1;

    // Shift all existing rows down by one and set new row at the top
    for (int i = 1; i <= ws.Rows.Count(); i++)
    {
        // If reached the first position, insert new row
        if (j == 0)
        {
            ws.Rows[0].Value = "new row";
            break;
        }

        // Assign values from row j to row (j + 1)
        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;

        // Move to the previous row
        j = j - 1;
    }

    // Save the changes to the Excel file
    wb.SaveAs("sample.xlsx");
}
using IronXL;

static void Main(string[] args)
{
    // Load the Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");

    // Get the worksheet named "Sheet1"
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Start from the last row and prepare to push all rows down by one
    int j = ws.Rows.Count() + 1;

    // Shift all existing rows down by one and set new row at the top
    for (int i = 1; i <= ws.Rows.Count(); i++)
    {
        // If reached the first position, insert new row
        if (j == 0)
        {
            ws.Rows[0].Value = "new row";
            break;
        }

        // Assign values from row j to row (j + 1)
        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;

        // Move to the previous row
        j = j - 1;
    }

    // Save the changes to the Excel file
    wb.SaveAs("sample.xlsx");
}
Imports IronXL

Shared Sub Main(ByVal args() As String)
	' Load the Excel file
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")

	' Get the worksheet named "Sheet1"
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

	' Start from the last row and prepare to push all rows down by one
	Dim j As Integer = ws.Rows.Count() + 1

	' Shift all existing rows down by one and set new row at the top
	For i As Integer = 1 To ws.Rows.Count()
		' If reached the first position, insert new row
		If j = 0 Then
			ws.Rows(0).Value = "new row"
			Exit For
		End If

		' Assign values from row j to row (j + 1)
		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

		' Move to the previous row
		j = j - 1
	Next i

	' Save the changes to the Excel file
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

此代码将下移行,并在文档的首位放置新行。 for 循环将移动所有行并在首位添加新行数据。 我们也可以在文档的末尾添加行。 让我们看看如何做到:

using IronXL;

static void Main(string[] args)
{
    // Load the Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");

    // Get the worksheet named "Sheet1"
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Determine the new row number, just after the last current row
    int i = ws.Rows.Count() + 1;

    // Add a new row with specific values at the end
    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";

    // Save the changes to the Excel file
    wb.SaveAs("sample.xlsx");
}
using IronXL;

static void Main(string[] args)
{
    // Load the Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");

    // Get the worksheet named "Sheet1"
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Determine the new row number, just after the last current row
    int i = ws.Rows.Count() + 1;

    // Add a new row with specific values at the end
    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";

    // Save the changes to the Excel file
    wb.SaveAs("sample.xlsx");
}
Imports IronXL

Shared Sub Main(ByVal args() As String)
	' Load the Excel file
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")

	' Get the worksheet named "Sheet1"
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

	' Determine the new row number, just after the last current row
	Dim i As Integer = ws.Rows.Count() + 1

	' Add a new row with specific values at the end
	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"

	' Save the changes to the Excel file
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

此代码将在文档的底部添加新行。 您可以在我们的操作页面上查看有关如何添加新行的更多详细信息。

IronXL 提供多种定价计划。 您甚至可以获得免费试用版——IronXL 免费试用版可以在不需要支付或提供卡信息的情况下激活。 不过,IronXL 对于开发是免费的。 请访问我们的授权页面了解更多信息。

常见问题解答

如何通过编程在Excel中将一行移到新位置?

您可以使用IronXL的C#方法选择要移动的行并将其放置在新位置。这可以通过操控WorkBookWorkSheet对象重新安排行来实现。

手动在Excel中移动行的流程是什么?

要手动在Excel中移动行,您可以使用拖放方法,选择行,按住Shift键并将其拖到所需位置。或者,使用剪切和粘贴方法,按Ctrl + X并在新位置插入剪切的单元格。

我可以不安装Excel来自动化Excel文件操作吗?

可以,IronXL允许您使用C#在无需安装Microsoft Excel的情况下编程创建、编辑和保存Excel文件,提供无缝的自动化体验。

如何以编程方式在Excel表的顶部添加新行?

使用IronXL,您可以将现有行下移一位,并使用C#代码在首位置插入新行,从而实现动态数据输入至Excel表的顶部。

是否可以使用C#将新行追加到Excel表的末尾?

可以,通过确定最后一行的编号,您可以使用IronXL在表末尾追加新行,并使用C#代码为此新行设置值。

IronXL有哪些高级数据操作功能?

IronXL提供高级功能,如数据可视化、验证和提取,以及创建交互式图表和可定制的数据透视表,所有这些都可以通过C#编程来访问。

IronXL如何通过免费选项支持开发人员?

IronXL提供免费试用版,并允许免费用于开发目的,详细的许可信息可在其官方网站上查阅。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。