ASP .NET中Execl导出的方法有哪些
更新时间:2023-11-11前言
在ASP .NET中,有多种方法可以用于导出Excel文件。这些方法可以帮助我们生成包含数据的Excel文件,方便用户下载和使用。下面将介绍一些ASP .NET中常用的Excel导出方法。
使用OpenXml库
OpenXml是一个开源库,可以在ASP .NET中使用来创建和编辑Office文档,包括Excel文件。使用OpenXml库可以通过一些简单的代码来生成Excel文件。以下是一个使用OpenXml库进行Excel导出的示例:
using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Spreadsheet; public void ExportToExcel(Listdata) { using (MemoryStream mem = new MemoryStream()) { using (SpreadsheetDocument document = SpreadsheetDocument.Create(mem, SpreadsheetDocumentType.Workbook)) { // 创建Excel文件 WorkbookPart workbookPart = document.AddWorkbookPart(); worksheetPart.Worksheet = new Worksheet(new SheetData()); Sheets sheets = document.WorkbookPart.Workbook.GetFirstChild (); string relationshipId = document.WorkbookPart.GetIdOfPart(worksheetPart); uint sheetId = 1; if (sheets.Elements ().Count() > 0) { sheetId = sheets.Elements ().Select(s => s.SheetId.Value).Max() + 1; } Sheet sheet = new Sheet() { Id = relationshipId, SheetId = sheetId, Name = "Sheet1" }; sheets.Append(sheet); // 填充数据 SheetData sheetData = worksheetPart.Worksheet.GetFirstChild (); uint rowIndex = 1; foreach (var item in data) { Row row = new Row() { RowIndex = rowIndex }; Cell cell = new Cell() { DataType = CellValues.String, CellValue = new CellValue(item.Name) }; row.Append(cell); sheetData.AppendChild(row); rowIndex++; } } // 将Excel文件返回给用户 HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=ExportedData.xlsx"); mem.WriteTo(HttpContext.Current.Response.OutputStream); HttpContext.Current.Response.End(); } }
使用EPPlus库
EPPlus是一个.Net库,用于创建和读取Excel文件。它提供了丰富的API来操作Excel文件,并支持大量的Excel功能。以下是一个使用EPPlus库进行Excel导出的示例:
using OfficeOpenXml; public void ExportToExcel(Listdata) { ExcelPackage excel = new ExcelPackage(); ExcelWorksheet worksheet = excel.Workbook.Worksheets.Add("Sheet1"); // 填充数据 int rowIndex = 1; foreach (var item in data) { worksheet.Cells[rowIndex, 1].Value = item.Name; rowIndex++; } // 将Excel文件返回给用户 HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=ExportedData.xlsx"); HttpContext.Current.Response.BinaryWrite(excel.GetAsByteArray()); HttpContext.Current.Response.End(); }
总结
ASP .NET中提供了多种方法用于导出Excel文件,包括使用OpenXml库和EPPlus库。使用这些库可以轻松地生成包含数据的Excel文件,并提供给用户下载和使用。无论是使用OpenXml还是EPPlus,都可以根据需求选择合适的方法来导出Excel文件。