.NET Core 中导入导出Excel
生活随笔
收集整理的這篇文章主要介紹了
.NET Core 中导入导出Excel
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
操作Excel是一個比較常見的業務場景,本篇將使用EPPlus簡單演示一個導入導出的示例。
EPPlus開源地址:https://github.com/EPPlusSoftware/EPPlus
在項目中添加EPPlus組件
Install-Package EPPlus導入
先準備一個Excel文件,將其內容讀取出來,并序列化成JSON字符串進行返回。
[HttpPost] public?List<ExcelDemoDto>?Import([FromForm]?ImportExcelInput?input) {var?list?=?new?List<ExcelDemoDto>();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?Task<string>?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?List<ExcelDemoDto>();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; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的.NET Core 中导入导出Excel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识ABP vNext(8):ABP特征
- 下一篇: .NET Core 中生成验证码