先打开NuGet包 搜索“EPPlus”添加引用
逻辑具体看代码注释
SaveFileDialog sfg = new SaveFileDialog();
//Excel文件名
sfg.FileName = stAppReportVo.PtName + "-" + stAppReportVo.OdAppno;
sfg.Title = "导出到文件";
sfg.Filter = "Excel 表格|*.xlsx";
if (sfg.ShowDialog() == DialogResult.OK)
{
DataTable dataTable = new DataTable();
DataRow dr = dataTable.NewRow();
//这里我是把实体集合pacsStrptSds 需要的数据插到DataTable
//根据需求生成DataTable 即可
foreach (var item in pacsStrptSds)
{
dataTable.Columns.Add(item.PsrsdKey);
dr[item.PsrsdKey] = item.PsrsdValue;
}
dataTable.Rows.Add(dr);
//这段必须有 不然报这个错“Please set the ExcelPackage.LicenseContext property”
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (FileStream fileStream = new FileStream(sfg.FileName, FileMode.Create))
using (ExcelPackage package = new ExcelPackage(fileStream))
{
//创建工作表 并设置名称
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(stAppReportVo.PtName);
//Excel里行列都是从1开始 从第一行第一列加载数据
worksheet.Cells[1, 1].LoadFromDataTable(dataTable, true);
//列自适应宽度
worksheet.Cells.AutoFitColumns();
//列文本水平居中显示
worksheet.Cells.Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;
package.Save();
}
}```