mvc npoi导出excel ajax,ASP.Net MVC利用NPOI导入导出Excel

因近期项目遇到所以记录一下:

首先导出Excel:

首先引用NPOI包

http://pan.baidu.com/s/1i3Fosux

(Action一定要用FileResult)

///

/// 批量导出本校第一批派位学生

///

///

public FileResult ExportStu2()

{

string schoolname = "";

//创建Excel文件的对象

NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();

//添加一个sheet

NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1");

//获取list数据

List listRainInfo = m_BLL.GetSchoolListAATQ(schoolname);

//给sheet1添加第一行的头部标题

NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow();

row1.CreateCell().SetCellValue("电脑号");

row1.CreateCell().SetCellValue("姓名");

//将数据逐步写入sheet1各个行

for (int i = ; i < listRainInfo.Count; i++)

{

NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + );

rowtemp.CreateCell().SetCellValue(listRainInfo[i].ST_CODE.ToString());

rowtemp.CreateCell().SetCellValue(listRainInfo[i].ST_NAME.ToString());

}

// 写入到客户端

System.IO.MemoryStream ms = new System.IO.MemoryStream();

book.Write(ms);

ms.Seek(, SeekOrigin.Begin);

return File(ms, "application/vnd.ms-excel", "第一批电脑派位生名册.xls");

}

前台直接写就可实现:

、 @Html.ActionLink("点击导出名册", "ExportStu2")

下面说一下导入:

首先说一些前台吧,mvc上传注意必须加 new { enctype = "multipart/form-data" }:

、@using(@Html.BeginForm("ImportStu", "ProSchool", FormMethod.Post, new { enctype = "multipart/form-data" }))

{

选择上传文件:(工作表名为“Sheet1”,“电脑号”在A1单元格。)

}

后台实现:只传路径得出DataTable:

///

/// Excel导入

///

///

///

public DataTable ImportExcelFile(string filePath)

{

HSSFWorkbook hssfworkbook;

#region//初始化信息

try

{

using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))

{

hssfworkbook = new HSSFWorkbook(file);

}

}

catch (Exception e)

{

throw e;

}

#endregion

using (NPOI.SS.UserModel.ISheet sheet = hssfworkbook.GetSheetAt())

{

DataTable table = new DataTable();

IRow headerRow = sheet.GetRow();//第一行为标题行

int cellCount = headerRow.LastCellNum;//LastCellNum = PhysicalNumberOfCells

int rowCount = sheet.LastRowNum;//LastRowNum = PhysicalNumberOfRows - 1

//handling header.

for (int i = headerRow.FirstCellNum; i < cellCount; i++)

{

DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);

table.Columns.Add(column);

}

for (int i = (sheet.FirstRowNum + ); i <= rowCount; i++)

{

IRow row = sheet.GetRow(i);

DataRow dataRow = table.NewRow();

if (row != null)

{

for (int j = row.FirstCellNum; j < cellCount; j++)

{

if (row.GetCell(j) != null)

dataRow[j] = GetCellValue(row.GetCell(j));

}

}

table.Rows.Add(dataRow);

}

return table;

}

}

补充一个类

///

/// 根据Excel列类型获取列的值

///

/// Excel列

///

private static string GetCellValue(ICell cell)

{

if (cell == null)

return string.Empty;

switch (cell.CellType)

{

case CellType.BLANK:

return string.Empty;

case CellType.BOOLEAN:

return cell.BooleanCellValue.ToString();

case CellType.ERROR:

return cell.ErrorCellValue.ToString();

case CellType.NUMERIC:

case CellType.Unknown:

default:

return cell.ToString();//This is a trick to get the correct value of the cell. NumericCellValue will return a numeric value no matter the cell value is a date or a number

case CellType.STRING:

return cell.StringCellValue;

case CellType.FORMULA:

try

{

HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(cell.Sheet.Workbook);

e.EvaluateInCell(cell);

return cell.ToString();

}

catch

{

return cell.NumericCellValue.ToString();

}

}

}

得到DataTable后,就想怎么操作就怎么操作了

&period;net mvc利用NPOI导入导出excel

1.导出Excel :首先引用NPOI包(Action一定要用FileResult) /// /// 批量导出需要导出的列表 /// ...

net mvc 利用NPOI导入导出excel

1.导出Excel : 首先引用NPOI包(Action一定要用FileResult) /// /// 批量导出需要导出的列表 /// ...

&period;net利用NPOI导入导出Excel

NPOI在.net中的操作Excel 1.读取 using (FileStream stream = new FileStream(@"c:\客户资料.xls", FileMode ...

asp&period;net mvc 使用NPOI插件导出excel

/// /// 交易账单 导出交易列表 /// /// public ...

NPOI导入导出Excel

.net mvc利用NPOI导入导出excel 注意:如何导出的提交方式ajax导出是失效的! 解决方案是:js处理l两个表单的提交  代码:  第一步. 在页面里面加入2个隐藏的iframe, 如下 ...

ASP&period;Net MVC中数据库数据导出Excel,供HTTP下载(转)

转自http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于web ...

ASP&period;Net MVC中数据库数据导出Excel,供HTTP下载

本文来自:http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于 ...

Java利用POI导入导出Excel中的数据

首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...

NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

随机推荐

jQuery中的Ajax - Codeigniter版本

发送(view中): $.ajax({ type : 'post', url : 'add', data : { 'nickname':nickname, 'mobile':mobile, 'sex' ...

如果把表单数据的校验交给了javascript那么后台还有没有必要对数据做校验呢

现在很多同事,包括我,我表单的数据验证交给了javascript来做,那么新的问题来了,如果交给了javascript那么后台还有没有必要对数据做校验呢

Codeforces Round &num;274 &lpar;Div&period; 2&rpar;

A http://codeforces.com/contest/479/problem/A 枚举情况 #include #include ...

uboot顶层config&period;mk分析

uboot顶层目录中的config.mk定义了确定了当前执行makefile所对应的源文件目录.目标文件目录,编译的程序编译.连接的选项,以及目标文件生成的规则等等.它被包含在顶层的makefile以 ...

Redux:从action到saga

前端应用消失的部分 一个现代的.使用了redux的前端应用架构可以这样描述: 一个存储了应用不可变状态(state)的store 状态(state)可以被绘制在组件里(html或者其他的东西).这个绘 ...

brew 安装指定版本命令行工具 tmux 多版本实现

Homebrew 是 macOS 命令安装工具,其核心库里的命令行在 github homebrew-core 仓库上维护. 核心库命令大概有 5000 条左右,大部分的命令行工具只保留了最新版本的 ...

Flask 模型操作

ORM 简称 ORM, O/RM, O/R Mapping 持久化模型 特征 数据表和编程类的映射 数据类型映射 字段属性映射类的属性和数据类型 关系映射 表于表之间的关系对应到 编程类的关系上 优点 ...

vmware启动虚拟机发现没权限

前期安装未参与,但了解大致情况: 物理机上安装CentOS7系统,然后安装VMWare,虚拟了几台CentOS6 遇到的问题:物理机重启后,以root进入系统,但打开VMWare显示是普通用户权限,以 ...

【转】 Linux常用文件操作命令

1 改变目录 要进入相应的目录我们可以使用Linux下的改变目录命令cd (ChangeDirectory). 下面我要进入到/tmp目录下,如下操作: [root@bestlinux ~]# cd ...

多线程学习笔记九之ThreadLocal

目录 多线程学习笔记九之ThreadLocal 简介 类结构 源码分析 ThreadLocalMap set(T value) get() remove() 为什么ThreadLocalMap的键是W ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值