C# 使用EPPlus读取保存Excel
使用EPPlus库
EPPlus是一个流行的用于操作Excel文件的库,它提供了简单易用的API来创建、编辑和保存Excel文件。
代码
using OfficeOpenXml;
using System.IO;
// 创建ExcelPackage对象
var package = new ExcelPackage();
// 添加工作表和数据
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
worksheet.Cells[1, 1].Value = "Hello";
worksheet.Cells[1, 2].Value = "World";
// 保存Excel文件
string filePath = "C:\\example.xlsx";
package.SaveAs(new FileInfo(filePath));
使用EPPlus库遇到了无法保存的问题,需要指明非商业应用
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
未指明非商用报错
ExceptionType: "System.InvalidOperationException"
Message: "Error saving file E:\\-\\-\\Excel\\-MRO请购单20230901151240.xlsx"
StackTrace: " 在 OfficeOpenXml.ExcelPackage.Save()\r\n -.-.DownLoadExcel(String fac) 位置 E:\\-\\-\\-.aspx.cs:行号 461"
我的示例代码
public static string DownLoadExcel(string fac)
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;//指明非商用 没有的话无法保存
// 先下载请购单模板
string templatePath = HttpContext.Current.Server.MapPath("Files/MROUpload.xlsx");
ExcelPackage package = new ExcelPackage(new FileInfo(templatePath));
//处理数据写入excel 暂未写
int month = sfci.GetFCMonth(fac);
int year = sfci.GetFCYear(fac);
string nowtime = DateTime.Now.ToString("yyyyMMddHHmmss");
string name = fac + "SMT" + year + "年" + month + "月" + "MRO请购单" + nowtime + ".xlsx";
// 保存 Excel 文件到指定路径
string savePath = HttpContext.Current.Server.MapPath("Excel/") + name;
package.SaveAs(new FileInfo(savePath));
// 释放资源
package.Dispose();
return name;
}