c# 想要将一个excel中数据转移到另外一个excel中,应该怎么做

c# 想要将一个excel中数据转移到另外一个excel中,应该怎么做?最好有完整一点代码

img

源Excel:

img

目标Excel:

img

示例程序结构:

img

安装 EPPlus NuGet程序包:

img

示例程序源码:

using OfficeOpenXml;
using System;
using System.IO;

namespace ConsoleApp2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
            var sourceExcel = Path.Combine(baseDirectory, "files", "source.xlsx");
            var disExcel = Path.Combine(baseDirectory, "files", "dist.xlsx");
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

            using var packageSource = new ExcelPackage(new FileInfo(sourceExcel));
            using var packageDist = new ExcelPackage(new FileInfo(disExcel));
            var sheetSource = packageSource.Workbook.Worksheets[0];
            var sheetDist = packageDist.Workbook.Worksheets[0];
            for (var row = 2; row <= sheetDist.Dimension.End.Row; row++)
            {
                if (sheetDist.Cells[row, 1].Value.ToString() == sheetSource.Cells[row, 1].Value.ToString())
                {
                    sheetDist.Cells[row, 3].Value = sheetSource.Cells[row, 2].Value;
                }
            }
            packageDist.Save();
            Console.WriteLine("数据处理完成.");
            Console.ReadKey();
        }
    }
}

运行结果:

img

C#完整代码示例:

using Spire.Xls;

namespace ReplaceData
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载两个Excel工作簿
            Workbook wb1 = new Workbook();
            wb1.LoadFromFile("sample1.xlsx");
            Workbook wb2 = new Workbook();
            wb2.LoadFromFile("sample2.xlsx");

            //获取工作簿1中指定单元格的数据
            CellRange cell1 = wb1.Worksheets[0].Range["D1"];
            string data1 = cell1.Value;

            //获取工作簿2种的指定单元格数据,并用工作簿1的数据替换
            CellRange cell2 = wb2.Worksheets[0].Range["D1"];           
            cell2.Text = data1;

            //保存工作簿2为新的文件
            wb2.SaveToFile("newFile.xlsx",FileFormat.Version2013);
            System.Diagnostics.Process.Start("newFile.xlsx");
        }
    }
}

img

直接通过nuget搜索“Free Spire.XLS”安装,然后参考上面的代码来操作就可以了。

如果是整个表转移的话,试试替换或者复制文件呢?
//将现有文件复制到新文件,不允许覆盖现有文件。
public System.IO.FileInfo CopyTo(string destFileName)
//将现有文件复制到新文件,允许覆盖现有文件。
public System.IO.FileInfo CopyTo(string destFileName, bool overwrite)