asp.net导出excel表格的总结

原创 2017年01月18日 19:36:56

需求:把客户所需要的数据不仅显示在网页上,还需要可以通过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域需要上图中的引用和继承。

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于C#,ASP.NET 生成Excel表格的两种方式(Datatable转Excel)

列举一些编程过程中常用代码,如Datatable转换为Excel表格给用户下载,包含了生成Excel的方法,绝对路径转换相对路径的方法,替换Html标签的方法,Json数据转换为Datatable的方...
  • u013542549
  • u013542549
  • 2017年05月04日 18:12
  • 17288

C# asp.net 实现导出Excel

转自http://www.cnblogs.com/zhangjd/p/5673950.html 两个方法 一、实现DataTable数据导出到本地,需要自己传进去导出的路径。 /// /// Da...
  • wybshyy
  • wybshyy
  • 2016年08月17日 17:10
  • 4924

完整的asp.net 导出table到Excel中

导出 public class HtmlDataToDocOrExcel { private Page _InvokePage; /// //...
  • wang4978
  • wang4978
  • 2014年05月15日 10:48
  • 13407

ASP.NET如何导出excel和txt并可以个性化修改表头添加统计行等,并传回客户端下载

近来在做项目和学习的过程都遇到了导出并下载excel和txt文档的需求,故在网上搜索累死的功能,我发现通过将DataTable中的数据导出成excel,让后将excel文件用记事本打开你会发现其实导出...
  • pld1990
  • pld1990
  • 2014年01月19日 19:34
  • 1097

asp.net中利用NPOI导出数据到excel中

asp.net中利用NPOI实现导出DataSet到Excel中,首先下载对应的dll,下载地址:将其添加到项目引用中。下面给出一个方法NPOIHelper.cs,代码如下:using System;...
  • taomanman
  • taomanman
  • 2015年07月03日 15:15
  • 4053

关于C#,ASP.NET 生成Excel表格的两种方式(Datatable转Excel)

列举一些编程过程中常用代码,如Datatable转换为Excel表格给用户下载,包含了生成Excel的方法,绝对路径转换相对路径的方法,替换Html标签的方法,Json数据转换为Datatable的方...
  • u013542549
  • u013542549
  • 2017年05月04日 18:12
  • 17288

asp.net 导出excel带图片

//此方法20条数据导出需要10秒左右,效率太低了,有时间需要再优化,关键是能导出图片了。...
  • moniteryao
  • moniteryao
  • 2015年01月14日 22:09
  • 1988

asp.net mvc 数据导出excel表及自excel表导入数据到相应表

一、自数据表导出excel /// /// 导出excel /// /// /// public FileRe...
  • sxf359
  • sxf359
  • 2017年04月07日 16:29
  • 509

asp.net导出数据到Excel的三种方法

asp.net导出到Excel也是个老生常谈的问题,在此归纳一下。 第一种是比较常用的方法。是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输出到客户...
  • zlwzlwzlw
  • zlwzlwzlw
  • 2015年02月09日 15:31
  • 2532

.net 导出复杂格式的EXCEL

首先要添加EXCEl引用在网上搜一下应该就能找到添加的方法,注意要跟服务器中的EXCEl版本一直然后在cs中添加using Microsoft.Office.Interop.Excel;using M...
  • ranshouxu
  • ranshouxu
  • 2013年03月22日 12:02
  • 1839
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net导出excel表格的总结
举报原因:
原因补充:

(最多只允许输入30个字)