首頁 > 軟體

詳解C#如何在不同工作簿之間複製選定單元格區域

2023-02-10 06:00:56

在處理 Excel 檔案時,我們經常需要將資料整合到一個工作表以便於我們進行管理或資料對比。為了提高工作效率,我們可以在不同的工作簿之間複製選定的單元格區域或整個工作表。本文將演示如何通過程式設計方式將選定的單元格區域從一個工作簿複製到另一個工作簿。

程式環境

本次測試時,在程式中引入 Spire.XLS.dll 檔案。

方法1:

Free Spire.XLS for .NET​​ 下載到本地,解壓,找到 BIN 資料夾下的 Spire.XLS.dll。然後在 Visual Studio 中開啟“解決方案資源管理器”,滑鼠右鍵點選“參照”,“新增參照”,將本地路徑 BIN 資料夾下的 dll 檔案新增參照至程式。

方法2::

通過​NuGet​​安裝。可通過以下 2 種方法安裝:

 1. 可以在 Visual Studio 中開啟“解決方案資源管理器”,滑鼠右鍵點選“參照”,“管理 NuGet 包”,然後搜尋“Free Spire.XLS”,點選“安裝”。等待程式安裝完成。

 2. 將以下內容複製到 PM 控制檯安裝。

Install-Package FreeSpire.XLS -Version 12.7

不同工作簿之間複製單元格範圍

  • 建立一個Workbook物件以載入源 Excel 檔案。
  • 分別使用 Workbook.Worksheets 屬性和 Worksheet.Range 屬性獲取源工作表和源單元格區域。
  • 建立另一個Workbook物件以載入目標 Excel 檔案。
  • 獲取目標工作表和單元格區域。
  • 使用 Worksheet.Copy(CellRange source, CellRange destRange) 將資料從源區域複製到目標區域。
  • 將源區域的列寬複製到目標區域,以便資料可以在目標工作簿中正常顯示。
  • 使用 Workbook.SaveToFile() 方法將目標工作簿儲存到 Excel 檔案。

完整程式碼

C#

using Spire.Xls;

namespace CopyCellRange
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立一個Workbook物件
            Workbook sourceBook = new Workbook();

            //載入源 Excel 檔案
            sourceBook.LoadFromFile("營業狀況表.xlsx");

            //獲取源工作表
            Worksheet sourceSheet = sourceBook.Worksheets[0];

            //獲取源單元格區域
            CellRange sourceRange = sourceSheet.Range["A1:G5"];

            //建立另一個Workbook物件
            Workbook destBook = new Workbook();

            //載入目標工作簿
            destBook.LoadFromFile("目標檔案.xlsx");

            //獲取目標工作表
            Worksheet destSheet = destBook.Worksheets[0];

            //獲取單元格區域
            CellRange destRange = destSheet.Range["B2:H6"];

            //將資料從源範圍複製到目標範圍
            sourceSheet.Copy(sourceRange, destRange);

            //迴圈遍歷源範圍中的列
            for (int i = 0; i < sourceRange.Columns.Length; i++)
            {
                //將列寬也從源範圍複製到目標範圍
                destRange.Columns[i].ColumnWidth = sourceRange.Columns[i].ColumnWidth;
            }

            //將目標工作簿儲存到 Excel 檔案
            destBook.SaveToFile("複製單元格範圍.xlsx");
        }
    }
}

VB.NET

Imports Spire.Xls

Namespace CopyCellRange
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            '建立一個Workbook物件
            Dim sourceBook As Workbook = New Workbook()

            '載入源 Excel 檔案
            sourceBook.LoadFromFile("營業狀況表.xlsx")

            '獲取源工作表
            Dim sourceSheet As Worksheet = sourceBook.Worksheets(0)

            '獲取源單元格區域
            Dim sourceRange As CellRange = sourceSheet.Range("A1:G5")

            '建立另一個Workbook物件
            Dim destBook As Workbook = New Workbook()

            '載入目標工作簿
            destBook.LoadFromFile("目標檔案.xlsx")

            '獲取目標工作表
            Dim destSheet As Worksheet = destBook.Worksheets(0)

            '獲取單元格區域
            Dim destRange As CellRange = destSheet.Range("B2:H6")

            '將資料從源範圍複製到目標範圍
            sourceSheet.Copy(sourceRange, destRange)

            '迴圈遍歷源範圍中的列
            For i As Integer = 0 To sourceRange.Columns.Length - 1
                '將列寬也從源範圍複製到目標範圍
                destRange.Columns(i).ColumnWidth = sourceRange.Columns(i).ColumnWidth
            Next

            '將目標工作簿儲存到 Excel 檔案
            destBook.SaveToFile("複製單元格範圍.xlsx")
        End Sub
    End Class
End Namespace

效果圖

到此這篇關於詳解C#如何在不同工作簿之間複製選定單元格區域的文章就介紹到這了,更多相關C#複製選定單元格區域內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com