网站建设加盟创业,用天地图做网站,河北网站制作公司报价,内蒙古交通建设质监局网站操作Excel是一个比较常见的业务场景#xff0c;本篇将使用EPPlus简单演示一个导入导出的示例。EPPlus开源地址#xff1a;https://github.com/EPPlusSoftware/EPPlus在项目中添加EPPlus组件Install-Package EPPlus导入先准备一个Excel文件#xff0c;将其内容读取出来#… 操作Excel是一个比较常见的业务场景本篇将使用EPPlus简单演示一个导入导出的示例。EPPlus开源地址https://github.com/EPPlusSoftware/EPPlus在项目中添加EPPlus组件Install-Package EPPlus
导入先准备一个Excel文件将其内容读取出来并序列化成JSON字符串进行返回。[HttpPost]
public ListExcelDemoDto Import([FromForm] ImportExcelInput input)
{var list new ListExcelDemoDto();using (var package new ExcelPackage(input.ExcelFile.OpenReadStream())){// 获取到第一个Sheet也可以通过 Worksheets[name] 获取指定的工作表var sheet package.Workbook.Worksheets.First();#region 获取开始和结束行列的个数根据个数可以做各种校验工作// 1 是因为第一行往往我们获取到的都是Excel的标题int startRowNumber sheet.Dimension.Start.Row 1;int endRowNumber sheet.Dimension.End.Row;int startColumn sheet.Dimension.Start.Column;int endColumn sheet.Dimension.End.Column;#endregion// 循环获取整个Excel数据表数据for (int currentRow startRowNumber; currentRow endRowNumber; currentRow){list.Add(new ExcelDemoDto{AAA sheet.Cells[currentRow, 1].Text,BBB sheet.Cells[currentRow, 2].Text,CCC sheet.Cells[currentRow, 3].Text,DDD sheet.Cells[currentRow, 4].Text,EEE sheet.Cells[currentRow, 5].Text,FFF sheet.Cells[currentRow, 6].Text});}}return list;
}public class ExcelDemoDto
{public string AAA { get; set; }public string BBB { get; set; }public string CCC { get; set; }public string DDD { get; set; }public string EEE { get; set; }public string FFF { get; set; }
}public class ImportExcelInput
{public IFormFile ExcelFile { get; set; }
}
导出[HttpGet]
public async Taskstring Export()
{using var package new ExcelPackage();var worksheet package.Workbook.Worksheets.Add(sheet1);var headers new string[] { AAA, BBB, CCC, DDD, EEE, FFF };for (int i 0; i headers.Length; i){worksheet.Cells[1, i 1].Value headers[i];worksheet.Cells[1, i 1].Style.Font.Bold true;}// 模拟数据var list new ListExcelDemoDto();for (int i 1; i 10; i){list.Add(new ExcelDemoDto{AAA $A{i},BBB $B{i},CCC $C{i},DDD $D{i},EEE $E{i},FFF $F{i}});}// 支持各种直接获取数据的方法// worksheet.Cells.Load*...int row 2;foreach (var item in list){worksheet.Cells[row, 1].Value item.AAA;worksheet.Cells[row, 2].Value item.BBB;worksheet.Cells[row, 3].Value item.CCC;worksheet.Cells[row, 4].Value item.DDD;worksheet.Cells[row, 5].Value item.EEE;worksheet.Cells[row, 6].Value item.FFF;row;}// 通常做法是将excel上传至对象存储获取到下载链接这里将其输出到项目根目录。var path Path.Combine(Directory.GetCurrentDirectory(), $excel.xlsx);await package.GetAsByteArray().DownloadAsync(path);return path;
}