操作Execel c#有许多的方案,这里我们使用EPPlus来操作,它的优势是操作简单,非常容易上手,下面我就以一个实际的案例来实现演示它是如何进行操作的。我们本次使用的环境是Asp.net 8 mvc。
第一步:创建工程文件
这一步没什么好说的,根据您的需要创建工程文件,我选择的是Asp.net 8 mvc,当然您也可以根据自己的习惯来选择方案。
第二步:通过NuGet添加EPPlus
点击工程文件右边 资源解决方案->依赖项 右键选择管理NuGet搜索EPPlus安装即可。

第三步:开始编写代码
我们将编写一段代码,作用是将表B里的数据根据情况比如表B里的电话号码写入到表A里。简单的说就是将表B里的数据根据情况合并到表A里,代码如下
public static string ReadXLS(string FilePath,string GetFile)
{
FileInfo existingFile = new(FilePath);
FileInfo getfile = new(GetFile);
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;//设置商用还是非商用
using ExcelPackage package = new(existingFile);
//get the first worksheet in the workbook
ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; //读取第一面
int colCount = worksheet.Dimension.End.Column; //get Column Count 获得列数
int rowCount = worksheet.Dimension.End.Row; //get row count 获得行数
using ExcelPackage get = new(getfile);
ExcelWorksheet getsheet = get.Workbook.Worksheets[0];
int cols = getsheet.Dimension.End.Column; //get Column Count
int rows = getsheet.Dimension.End.Row; //get row count
string data = "";
int err = 0;
try
{
for (int row = 1; row <= rowCount; row++)//循环每一行
{
string db = worksheet.Cells[row, 3].Value.ToString()!.Trim();//获得当前C列的值
for (int getrow = 1; getrow <= rows; getrow++)
{
err=getrow;
Var getdb = "";
var test = getsheet.Cells[getrow, 5];
string tel = "";
string xiaozu ="";
if (getsheet.Cells[getrow, 4].Value != null) {
getdb = getsheet.Cells[getrow, 4].Value.ToString()!.Trim();
}
if (getsheet.Cells[getrow, 5].Value != null)
{
tel = getsheet.Cells[getrow, 5].Value.ToString()!.Trim();
}
if (getsheet.Cells[getrow, 2].Value != null)
{
xiaozu = getsheet.Cells[getrow, 2].Value.ToString()!.Trim();
}
//根据情况写入相应数据,excel里的A对应1,B对应2以此类推
worksheet.Cells[row, 4].Value = tel;
worksheet.Cells[row, 1].Value = xiaozu;
}
}
}
catch (Exception e)
{
return e+"标识码:"+err;
}
package.Save();//保存表
return data;
}直接调用
My.ReadXLS("D:\\MyOffice\\1.xlsx", "D:\\MyOffice\\2.xlsx")当然上述代码只是一个示例,大家可以根据自己的实际情况进行修改,怎么样是不是很简单。