技术文摘
ASP.Net MVC 借助 NPOI 实现 Excel 导入导出的示例代码
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 导入导出
- WinX HD Video Converter 压缩大型视频文件的方法
- 中断程序编写的注意要点
- DOM 遍历方法探究
- Node.js 后端开发的特点及优势
- 7 个学习 TypeScript 的宝库推荐,2021 为自己加薪!
- Dubbo 相关的八个问题解析
- 阿里拆分,中台不再吃香?
- Spring 中那些可升华代码的技巧,或许令你钟爱不已
- 掌握这些,Spring 启动时便能随心所欲
- GitLabCI 助力多模块项目的 CI/CD 实现
- 五分钟轻松理解 Maven 核心概念
- 不推行 996 公司何以市值超万亿
- Java 中最新 SQL 注入成因与预防策略(通俗易懂)
- 基于 TCP 实现鸿蒙 3861 三色灯板亮灭(附 Demo 指引)
- 鸿蒙 HarmonyOS 应用开发实战 - 在线课堂 TV(二)