需引用ExcelDataReader、ExcelDataReader.DataSet、EPPlus
using System;
using System.IO;
using ExcelDataReader;
using OfficeOpenXml;
using LicenseContext = OfficeOpenXml.LicenseContext;
LicenseContext licenseContext = new LicenseContext();
ExcelPackage.LicenseContext = licenseContext;
using (var stream = File.Open(Excel文件路径, FileMode.Open, FileAccess.Read))
{
string filename=Path.GetFileName(Excel文件路径);
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
// 读取第一个工作表
var result = reader.AsDataSet(new ExcelDataSetConfiguration
{
ConfigureDataTable = _ => new ExcelDataTableConfiguration
{
UseHeaderRow = true // 指定第一行为表头
}
});
// 获取第一个工作表的数据
var dataTable = result.Tables[0];
// 创建新的Excel文件
using (var package = new ExcelPackage())
{
// 添加一个工作表
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
// 写入数据到工作表
for (int row = 0; row < dataTable.Rows.Count; row++)
{
for (int col = 0; col < dataTable.Columns.Count; col++)
{
worksheet.Cells[row + 1, col + 1].Value = dataTable.Rows[row][col].ToString();
}
}
// 保存Excel文件
package.SaveAs(new FileInfo(Application.StartupPath+"\\"+filename));
}
}
}