c语言编程笔录

首页 >   > 笔记大全

笔记大全

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(List data)
{
    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(List data)
{
    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文件。