c# 想要将一个excel中数据转移到另外一个excel中,应该怎么做?最好有完整一点代码
源Excel:
目标Excel:
示例程序结构:
安装 EPPlus NuGet程序包:
示例程序源码:
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();
}
}
}
运行结果:
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");
}
}
}
直接通过nuget搜索“Free Spire.XLS”安装,然后参考上面的代码来操作就可以了。
如果是整个表转移的话,试试替换或者复制文件呢?
//将现有文件复制到新文件,不允许覆盖现有文件。
public System.IO.FileInfo CopyTo(string destFileName)
//将现有文件复制到新文件,允许覆盖现有文件。
public System.IO.FileInfo CopyTo(string destFileName, bool overwrite)