c#

c#中如何合并多个Excel工作簿

小樊
119
2024-09-27 23:51:53
栏目: 编程语言

在C#中,你可以使用EPPlus这个库来合并多个Excel工作簿。以下是一个简单的示例,演示了如何使用EPPlus合并两个Excel工作簿:

  1. 首先,确保你已经安装了EPPlus库。如果没有,请使用NuGet包管理器安装它:
Install-Package EPPlus
  1. 接下来,编写一个C#程序来合并两个Excel工作簿:
using OfficeOpenXml;
using System;
using System.IO;

namespace ExcelMergeExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 指定要合并的Excel文件路径
            string filePath1 = @"path\to\your\first\workbook.xlsx";
            string filePath2 = @"path\to\your\second\workbook.xlsx";

            // 创建一个新的Excel工作簿,用于存储合并后的结果
            ExcelWorkbook mergedWorkbook = new ExcelWorkbook();
            ExcelWorksheet mergedWorksheet = mergedWorkbook.Worksheets.Add("MergedSheet");

            // 读取第一个Excel工作簿的内容
            using (ExcelPackage package1 = new ExcelPackage(filePath1))
            {
                ExcelWorksheet worksheet1 = package1.Workbook.Worksheets["Sheet1"]; // 根据实际情况修改工作表名称

                // 将第一个工作表的所有行和列复制到新的工作簿中
                for (int row = 1; row <= worksheet1.Dimension.End.Row; row++)
                {
                    for (int col = 1; col <= worksheet1.Dimension.End.Column; col++)
                    {
                        mergedWorksheet.Cells[row, col].Value = worksheet1.Cells[row, col].Value;
                    }
                }
            }

            // 读取第二个Excel工作簿的内容
            using (ExcelPackage package2 = new ExcelPackage(filePath2))
            {
                ExcelWorksheet worksheet2 = package2.Workbook.Worksheets["Sheet2"]; // 根据实际情况修改工作表名称

                // 将第二个工作表的所有行和列复制到新的工作簿中,从第二行开始以避免重复
                for (int row = 2; row <= worksheet2.Dimension.End.Row; row++)
                {
                    for (int col = 1; col <= worksheet2.Dimension.End.Column; col++)
                    {
                        mergedWorksheet.Cells[row, col].Value = worksheet2.Cells[row, col].Value;
                    }
                }
            }

            // 保存合并后的Excel工作簿
            string outputFilePath = @"path\to\your\merged\workbook.xlsx";
            mergedWorkbook.SaveAs(outputFilePath);

            Console.WriteLine($"Excel workbooks have been successfully merged into '{outputFilePath}'.");
        }
    }
}

请注意,这个示例假设两个要合并的Excel文件都有一个名为"Sheet1"的工作表。你需要根据实际情况修改工作表名称。此外,这个示例将合并两个工作簿的所有内容,并将结果保存在一个新的Excel文件中。你可以根据需要修改代码以适应你的具体需求。

0
看了该问题的人还看了