ASP.Net MVC 借助 NPOI 实现 Excel 导入导出的示例代码

2024-12-28 19:44:31   小编

ASP.Net MVC 借助 NPOI 实现 Excel 导入导出的示例代码

在 ASP.Net MVC 开发中,经常会遇到需要实现 Excel 导入导出的功能。NPOI 是一个强大的开源库,能够帮助我们轻松地完成这一任务。下面将为您展示一个示例代码,帮助您理解如何在 ASP.Net MVC 中借助 NPOI 来实现 Excel 的导入导出。

确保您已经在项目中引入了 NPOI 的相关 DLL 引用。

导出 Excel 的代码实现如下:

public ActionResult ExportExcel()
{
    var workbook = new HSSFWorkbook();
    var sheet = workbook.CreateSheet("Sheet1");

    // 设置表头
    var headerRow = sheet.CreateRow(0);
    headerRow.CreateCell(0).SetCellValue("ID");
    headerRow.CreateCell(1).SetCellValue("名称");
    headerRow.CreateCell(2).SetCellValue("年龄");

    // 模拟数据
    var data = new List<Person>
    {
        new Person { Id = 1, Name = "张三", Age = 25 },
        new Person { Id = 2, Name = "李四", Age = 30 }
    };

    // 填充数据
    for (int i = 0; i < data.Count; i++)
    {
        var row = sheet.CreateRow(i + 1);
        row.CreateCell(0).SetCellValue(data[i].Id);
        row.CreateCell(1).SetCellValue(data[i].Name);
        row.CreateCell(2).SetCellValue(data[i].Age);
    }

    // 将工作簿写入内存流
    using (var ms = new MemoryStream())
    {
        workbook.Write(ms);
        return File(ms.ToArray(), "application/vnd.ms-excel", "Export.xls");
    }
}

导入 Excel 的代码实现相对复杂一些,需要对文件进行读取和解析:

[HttpPost]
public ActionResult ImportExcel(HttpPostedFileBase file)
{
    if (file == null || file.ContentLength == 0)
    {
        ModelState.AddModelError("File", "请选择要导入的 Excel 文件");
        return View();
    }

    using (var workbook = new HSSFWorkbook(file.InputStream))
    {
        var sheet = workbook.GetSheetAt(0);
        for (int rowNum = 1; rowNum <= sheet.LastRowNum; rowNum++)
        {
            var row = sheet.GetRow(rowNum);
            if (row!= null)
            {
                int id = Convert.ToInt32(row.GetCell(0).NumericCellValue);
                string name = row.GetCell(1).StringCellValue;
                int age = Convert.ToInt32(row.GetCell(2).NumericCellValue);

                // 在此处处理导入的数据
            }
        }
    }

    return RedirectToAction("Index");
}

通过上述示例代码,我们可以看到,借助 NPOI 库,在 ASP.Net MVC 中实现 Excel 的导入导出功能变得相对简单和高效。您可以根据实际的业务需求,对数据的处理和逻辑进行进一步的扩展和优化。

希望这段示例代码能够对您在 ASP.Net MVC 开发中实现 Excel 导入导出功能有所帮助,让您的应用更加完善和实用。

TAGS: 示例代码 NPOI ASP.NET MVC Excel 导入导出

欢迎使用万千站长工具!

Welcome to www.zzTool.com