TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

ASP.NETMVC使用NPOI导入导出Excel示例

2025-06-07
/
0 评论
/
22 阅读
/
正在检测是否收录...
06/07

引言

在Web开发中,Excel的导入导出功能是一项常见且重要的需求。NPOI是一个开源的.NET库,它提供了对Microsoft Office Excel文件的读写能力,非常适合用于在ASP.NET MVC应用程序中实现Excel的导入导出功能。本文将提供一个简单的示例,演示如何使用NPOI在ASP.NET MVC应用程序中实现Excel的导入和导出功能。

准备工作

  1. 安装NPOI库:首先,需要在你的ASP.NET MVC项目中安装NPOI库。可以通过NuGet包管理器安装:
    Install-Package NPOI

  2. 创建MVC项目:确保你有一个基本的ASP.NET MVC项目设置好。

导入Excel

首先,我们定义一个Action来处理Excel的导入。我们将假设Excel文件具有固定的列结构,包括“标题”、“关键词”和“描述”。

控制器Action方法

```csharp
public ActionResult ImportExcel()
{
return View();
}

[HttpPost]
public ActionResult ImportExcel(HttpPostedFileBase file)
{
if (file == null || file.ContentLength == 0)
{
ModelState.AddModelError("文件", "文件为空或未上传");
return View();
}

var stream = file.InputStream;
var workbook = new ExcelPackage(stream);
var worksheet = workbook.Workbook.Worksheets[0];
var list = new List<ImportData>(); // 假设的模型类,用于存储数据
for (int row = 2; row <= worksheet.Dimension.End.Row; row++) // 跳过第一行标题行
{
    var data = new ImportData() { Title = worksheet.Cells[row, 1].Value?.ToString(), Keywords = worksheet.Cells[row, 2].Value?.ToString(), Description = worksheet.Cells[row, 3].Value?.ToString() };
    list.Add(data);
}
// 处理list中的数据...
return RedirectToAction("Index"); // 成功后的操作,例如重定向到另一个页面或显示消息等。

}
```

导出Excel

接下来,我们创建一个Action来导出数据到Excel文件。这通常包括创建一个新的Excel文件,填充数据,然后将其发送给客户端。

控制器Action方法(导出)

csharp public FileResult ExportExcel() { var workbook = new ExcelPackage(); // 创建新的Excel文件包实例。 var worksheet = workbook.Workbook.Worksheets.Add("Sheet1"); // 添加工作表。 worksheet.Cells[1, 1].Value = "标题"; // 设置列标题。 worksheet.Cells[1, 2].Value = "关键词"; // 设置列标题。 worksheet.Cells[1, 3].Value = "描述"; // 设置列标题。 // 假设我们有一些数据要导出... for (int i = 0; i < 10; i++) // 假设有10条数据要导出。 { worksheet.Cells[i + 2, 1].Value = $"标题 {i}"; // 设置数据。 worksheet.Cells[i + 2, 2].Value = $"关键词 {i}"; // 设置数据。 worksheet.Cells[i + 2, 3].Value = $"描述 {i}"; // 设置数据。 } var stream = workbook.GetAsByteArray(); // 获取Excel文件的字节流。 return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "导出的Excel文件.xlsx"); // 设置响应为文件下载,指定MIME类型和文件名。 } #### 视图(导入) 为了处理文件上传,我们需要在ImportExcel的视图中添加一个文件上传控件: html @using (Html.BeginForm("ImportExcel", "YourController", FormMethod.Post, new { enctype = "multipart/form-data" })) { <input type="file" name="file" /> <input type="submit" value="上传" /> } #### 小结 这个简单的示例展示了如何在ASP.NET MVC应用程序中使用NPOI来处理Excel的导入和导出功能。通过上述代码,你可以实现一个基本的Excel文件处理功能,可以按需扩展或调整以适应更复杂的业务需求。注意,实际应用中需要处理更多的异常和错误情况,确保程序的健壮性。

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/29005/(转载时请注明本文出处及文章链接)

评论 (0)