webform的导出
呃 怎么说呢 我这个是公司大佬写好的 我直接调用 和以前写的百度上面的都不大一样 感觉很Nice 插个眼 说不定以后还得回来参考参考 具体是这样的 你先写好一个模板 就是你要导出的数据应该在Excal显示出什么样子 比如我现在需要导出这样的样子

ok 然后找个地方放好 随后写一个配置文件 ExportConfig.xml里面的内容如下

然后是一个ExcalHelper帮助类
public static class ExcelHelper
{
//这里的三各参数 分别是一个数据结果集DataSet , 你刚写的配置文件模板的名字,然后就是一个导出Excal的名字
public static void ExprortExcel(DataSet set, string typeName, string fileName)
{
string outputFile = HttpContext.Current.Server.MapPath(string.Format("~/Temp/Temp/{0}", fileName));
var tempDirectory = HttpContext.Current.Server.MapPath("~/Temp/Temp/");
var files = Directory.GetFiles(tempDirectory);
try
{
foreach (string item in files)
{
File.Delete(item);
}
}
catch (Exception)
{
} ExportMain.GetProductDescription();
set.DataSetName = typeName;
ExportMain.Export(set, outputFile);
ToClient(outputFile);
}
public static void ToClient(string filePath)
{
try
{
FileInfo info = new FileInfo(filePath);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Charset = "UTF-8";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(info.Name, System.Text.Encoding.UTF8));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
System.Web.HttpContext.Current.Response.AddHeader("Content-Length", info.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
System.Web.HttpContext.Current.Response.WriteFile(info.FullName);
// File.Delete(file.FullName);
// 停止页面的执行
HttpContext.Current.Response.End();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (File.Exists(filePath))
{
File.Delete(filePath);
} }
}
}
//调用
//建立一个DataSet
DataSet set = new DataSet();
//建立一个DataTable
DataTable table = new DataTable("Body");//这里的名字是你配置文件里的source的名字
//之后为这个Table创建列
table.Columns.Add("Year", typeof(int));//年度
table.Columns.Add("ProvinceName", typeof(string));//省份
table.Columns.Add("CourseName", typeof(string));//文理
table.Columns.Add("MinScore", typeof(int));//分数开始
table.Columns.Add("MaxScore", typeof(int));//分数截止
table.Columns.Add("SameNumber", typeof(int));//同分人数
table.Columns.Add("LowestRank", typeof(int));//最低位次
table.Columns.Add("HighestRank", typeof(int));//最高位次
table.Columns.Add("istrue", typeof(string));//是否正确值
//循环追加数据 随便你
table.Rows.Add(列1,列2,列3,列4,列5,列6,列7,列8,列9);
//然后将这个table放到DataSet中
set.Tables.Add(table);
//最后调用ExcalHelper帮助类传进需要的参数就OK了
ExcalHelper(set,"OneParagraph","导出Excal的文件名"); 后面还会补充多工作表 或者 有跨行表头的 感谢你能看完
webform的导出的更多相关文章
- webform数据导出
把数据放到一个泛型集合里,再把泛型集合里面的数据放到一个table中,设置好文件路径,然后进行文件读取,最后供用户下载. 数据导出放在一个按钮中就可以了 using System; using Sys ...
- asp.net webform/mvc导出Excel通用代码
最近将自己在项目中经常用到的excel导出方法分析如下,如有不妥之处望他人指出,如果有更好的方法希望展示出来互相学习. //导出事件 protected void btnexcel_Click(obj ...
- C# 导出word文档及批量导出word文档(2)
aspose.word主要是通过把读取出来的数据放到datatable里,在datable里做相应的格式的调整,再导出到word文档里.mvc和webform最后导出的语句略有不同,在mvc的cont ...
- .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转
.net mvc 站点自带简易SSL加密传输 因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...
- Npoi导出Excel 实战篇(Webform)
开篇语 废话不多说,直接上遇到的问题 需求:在这个界面点击导出,导出页面数据,苦于没有做过webfrom项目,弄了半天还是没想到原生态的好方法,所以在网上看了下有没有导出的好例子,结果发现有人推荐使用 ...
- webform 不实用office控件导出excel StringBuilder 类型拼接字符串表格导出excel
StringBuilder sb = new StringBuilder(); sb.AppendLine("<meta http-equiv=\"Content-Type\ ...
- C#+Aspose.Cells 导出Excel及设置样式 (Webform/Winform)
在项目中用到,特此记录下来,Aspose.Cells 不依赖机器装没有装EXCEL都可以导出,很方便.具体可以参考其他 http://www.aspose.com/docs/display/cells ...
- 使用NPOI组件完成的Excel导出导入(附源代码,测试通过)
最近遇到一个Excel导入导出的问题,要支持winform和webform,这里我是一个认真严谨的coder,所以决定把这个记录下来!和大家一起分享一下!如果需要的同学可以下载哦! 对于NPOI这个组 ...
- RDIFramework.NET -.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(WebForm版)
RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(WebForm版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之 ...
随机推荐
- Golang 之 Base62 编码
Base62 编码用62个可见字符来编码信息,也就是所谓的62进制,可用于缩短地址之类的.实现起来也很简单.当然,这个实现跟别人家的有可能不一样,反正自己能编能解就行. package main im ...
- [GO]通道的关闭
并不是往通道里放多少次数据,就必须取多次少数据的(之前的例子都是放3次取3次,放10次取10次),我们可以做一个操作,当子协程没有新放入的时候,主协程不再去取,这就是关闭通道 package main ...
- javascript总结22: javascript的对象--面向对象编程
1 对象:JavaScript 中的所有事物都是对象:字符串.数值.数组.函数. 对象与程序的关系: 程序 = 基于对象操作的算法 + 以对象为最小单位的数据结构 此外: 面向对象的本质就是让对象有多 ...
- $.each()与$(selector).each()区别
jQuery.each( collection, callback(indexInArray, valueOfElement) )可用于迭代任何集合,无论是“名/值”对象(JavaScript对象)或 ...
- HDU 4714 Tree2cycle (树形DP)
题意:给定一棵树,断开一条边或者接上一条边都要花费 1,问你花费最少把这棵树就成一个环. 析:树形DP,想一想,要想把一棵树变成一个环,那么就要把一些枝枝叶叶都换掉,对于一个分叉是大于等于2的我们一定 ...
- vSphere5.5体系结构
1.vSphere5.5体系结构 vSphere5.5作为云集算操作系统,可以虚拟化服务器.存储.网络在内的整个IT基础架构,将这些架构转化为易于管理的虚拟化!vSphere5.5从逻辑上,可以划分为 ...
- requestAnimationFrame 定时器
这个方法是通过递归调用同一方法来不断更新画面以达到动起来的效果,但它优于setTimeout/setInterval的地方在于它是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用,并 ...
- fiddler-实现https抓包
1. fiddler设置-fiddler options-https项进行设置,如下: 2. ie代理设置:连接-局域网设置 3. 下载fiddler根证书,ie浏览器上打开地址:http://1 ...
- ASP.NET MVC中的控制器激活与反射之间的联系(帮助理解)
ASP.NET Mvc是ASP.NET的一个框架,同样也是基于管道的设计结构.HttpModule和HttpHandler是ASP.NET的两个重要组件,同样的在Mvc中也是非常重要的组件.在应用程序 ...
- dataset数据导出到Excel
1.将数据写入HTTP输出流/这样子导出以后的数据全在一行中 public void CreateExcel(DataSet ds, string FileName) { HttpResponse r ...