asp.net导出excel表格的总结

需求:把客户所需要的数据不仅显示在网页上,还需要可以通过excel表格导出。
上面是客户提的要求,为了实现这个功能,我查了很多博客资料,但是大部分都是给你一段代码,并没有告诉你,这段代码用在什么地方,需要什么样的引用。下面是我研究的一点心得:

1.通过查阅资料,找到NPOI导出excel的方法。
通过一般处理程序.ashx文件
<%@ WebHandler Language="C#" Class="DownExcel" %>
using System;
using System.Web;
public class DownExcel : IHttpHandler {
public void ProcessRequest (HttpContext context) {
//指定输出类型
context.Response.ContentType = "application/x-excel";
//指定文件编码
string filename = HttpUtility.UrlEncode("客户资料表.xls");
//添加http报文头输出类型
context.Response.AddHeader("Content-Disposition", string.Format("attachment;filename=\"{0}\"", filename));
//创建excel文件表的标题
NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
NPOI.HSSF.UserModel.HSSFSheet sheet = (NPOI.HSSF.UserModel.HSSFSheet)workbook.CreateSheet();
NPOI.HSSF.UserModel.HSSFRow row = (NPOI.HSSF.UserModel.HSSFRow)sheet.CreateRow(0);
NPOI.HSSF.UserModel.HSSFCell cell0 = ( NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(0);
cell0.SetCellValue("客户名称");
NPOI.HSSF.UserModel.HSSFCell cell1 = ( NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(1);
cell1.SetCellValue("车辆类型");
NPOI.HSSF.UserModel.HSSFCell cell2 = ( NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(2);
cell2.SetCellValue("购买价格");
//输出相关客户信息
for (int x = 1; x < 8; x++)
{
NPOI.HSSF.UserModel.HSSFRow rowx = ( NPOI.HSSF.UserModel.HSSFRow)sheet.CreateRow(x);
NPOI.HSSF.UserModel.HSSFCell c0 = ( NPOI.HSSF.UserModel.HSSFCell)rowx.CreateCell(0);
c0.SetCellValue("cust"+x.ToString());
NPOI.HSSF.UserModel.HSSFCell c1 = ( NPOI.HSSF.UserModel.HSSFCell)rowx.CreateCell(1);
c1.SetCellValue(x.ToString() + x.ToString());
NPOI.HSSF.UserModel.HSSFCell c2 = ( NPOI.HSSF.UserModel.HSSFCell)rowx.CreateCell(2);
c2.SetCellValue(x * 200);
}
//将文本流输出到客户端
workbook.Write(context.Response.OutputStream);
}
public bool IsReusable {
get {
return false;
}
}
}

上面的代码需要npoi的引用,添加这个引用之后,才可以使用NPOI的类以及方法。npoi的引用可以通过下面的网址下载:
http://npoi.codeplex.com/releases/

2.在找到这个方法之后,我把这段代码改成自己需要的代码后,放入到$.post(“xxxxx.ashx”)文件中,目的是希望可以通过一个程序从数据库中查询到所需要的数据,并且把他导出来,同时又可以返回给前台页面。但是失败了,怎么都没有用,说明返回给前台页面和导出的程序不能放在一起。

3.因为是要根据获得的参数,来查询数据库中数据,一般使用的是.post.post传入参数是可以,但这个ashx文件并没有弹出下载excel表格的弹窗。后来想到在返回前台页面的ashx代码里把查询条件传入session域中,在导出数据的ashx中通过session区出来。
这里写图片描述
注意的是,ashx文件中使用session域需要上图中的引用和继承。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mooneal/article/details/54604032
文章标签: 导出excel
个人分类: 项目总结
上一篇数组插入问题&lt;剑指offer&gt;
下一篇js中怎么获取系统当前时间 格式 yyyy-MM-dd HH:MM:SS
想对作者说点什么? 我来说一句

asp.net导出excel表方法汇总

2009年06月25日 7KB 下载

没有更多推荐了,返回首页

关闭
关闭