跳過到頁腳內容
使用 IRONXL

如何在 Excel 中移動行

多年來,Excel 一直是最受歡迎的資料處理工具之一,每天都有數百萬電腦使用者使用這款電子表格軟體來滿足工作或個人會計需求。 它適用於超過 14 億台基於 Windows 的 PC,約佔世界人口的 45%。 Excel 是一款功能強大的資料分析工具,可進行來回編輯、排序、篩選、資料透視表和圖表等操作。 它也是商業界最受歡迎的工具之一,每天有超過四百萬人積極使用它。 列標題、行標題、列字母和行號是 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 是一個 .NET C# Excel 函式庫,供開發人員編輯並儲存 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 可讓您在不需要安裝 Microsoft Excel 的情況下,以 C# 程式化的方式建立、編輯和儲存 Excel 檔案,提供無縫的自動化體驗。

如何以程式化的方式在 Excel 工作表的頂端新增一行?

使用 IronXL,您可以使用 C# 程式碼將現有的行向下移動一格,並在第一個位置插入新行,讓您可以在 Excel 工作表的頂端進行動態資料輸入。

是否可以使用 C# 在 Excel 工作表的末尾追加新行?

是的,通過確定最後一行的編號,您可以使用 IronXL 在工作表的末尾追加一條新行,方法是使用 C# 程式碼為這條新行設定值。

IronXL 有哪些進階資料處理功能?

IronXL 提供先進的功能,例如資料可視化、驗證和抽取,以及建立互動式圖表和客製化透視表,這些功能都可以透過 C# 程式設計來存取。

IronXL 如何透過免費選項支援開發人員?

IronXL 提供免費試用,並允許開發目的的免費使用,詳細的授權資訊請參閱其官方網站。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。