Asp.net导出Excel
上篇博客,讲述初步导出Excel出现的问题。现在具体写一下导出Excel步骤。
对于大批量的数据,导出Excel的办法如下。
(1)使用DataTable导出Excel
其中使用StringWriter类:将信息写入字符串。其命名空间为:System.IO
具体的原理是:
首先读取DataTable中的列名,然后循环读取DataTable行值。
然后设置导出的编码,导出的类型。
最后输出StringWriter对象即可。
这种导出是将文件直接以文件流的形式输出到浏览器。
- private StringWriter GetStringWriter(DataTable dt)
- {
- StringWriter sw = new StringWriter();
- //读列名
- foreach (DataColumn dc in dt.Columns)
- sw.Write(dc.ColumnName + "\t");
- //读列值
- //重新的一行
- sw.Write(sw.NewLine);
- if (dt != null)
- {
- foreach (DataRow dr in dt.Rows)
- {
- for (int i = 0; i < dt.Columns.Count; i++)
- {
- sw.Write(dr[i].ToString() + "\t");
- }
- sw.Write(sw.NewLine);
- }
- }
- sw.Close();
- return sw;
- }
- protected void ExcelImport(DataTable dt, string ExportFileName)
- {
- StringWriter sw = GetStringWriter(dt);
- //当前编码
- HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
- //把输出的文件名进行编码
- string fileName = HttpUtility.UrlEncode (ExportFileName, System.Text.Encoding.UTF8);
- //文件名
- string str = "attachment;filename=" + fileName + ".xls";
- //把文件头输出,此文件头激活文件下载框
- HttpContext.Current.Response.AppendHeader("Content-Disposition", str);//http报头文件
- HttpContext.Current.Response.ContentType = "application/ms-excel";
- this.Page.EnableViewState = false;
- Response.Write(sw);
- Response.End();
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- DataTable dt = new SelectCourseManager().SelectByCollegeAndProperty(ddlCourseProperty.Text, ddlCollege.SelectedValue);
- if (dt.Rows.Count == 0)
- Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascriopt' defer>alert('没有数据,不需要导出哈');</script>");
- else
- {
- //导出Excel
- ExcelImport(dt, "课程");
- }
- }
在导出Excel的时候,最关键的是编码问题,不同的形式导出Excel编码形式不同,否则,导出的Excel文件中文显示乱码。在DataTable导出Excel的时候,当前输出的编码样式是简体中文GB2312
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
而其导出的文件名是:UTF8编码
string fileName = HttpUtility.UrlEncode (ExportFileName, System.Text.Encoding.UTF8);
转载于:https://www.cnblogs.com/nzgbk/p/6112470.html
Asp.net导出Excel相关推荐
- asp.net导出excel示例代码
asp.net导出excel示例代码 asp.net导出excel的简单方法. excel的操作,最常用的就是导出和导入. 本例使用NPOI实现. 代码:/// <summary> ...
- 【译】Asp.Net 导出 Excel 数据的9种方案
简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website table 等多钟格式的文档.它具备自动识别行号,字符,格式化数字等功能,例如: ...
- 关于ASP.NET导出Excel表格的个人总结归纳
2019独角兽企业重金招聘Python工程师标准>>> 之前一直想研究ASP.NET导出Excel表格来着,但一直没有时间,这几天因为一个项目的需要,所以就钻研了一下.有百度,但网上 ...
- ASP.Net导出EXCEL表(小结)
这个问题困扰了我好几天,现在终于解决了,现公布整个过程的注意点.通过.net导出Excel表,除了注意导出的方法外,还要关心资源的回收问题,中间涉及到COM组件的关闭等. 因为对windows系统.. ...
- ASP.NET 导出EXCEL
采用.Net Excel组件导出 EXCEL文件, /// <summary> /// 导出Excel /// </summary> ...
- 一个ASP.NE导出Excel类
支持DataSet.DataReader.DataTable.DataGrid等数据源 看起来有点耍赖,用HTML构造的,但是能用就行 1using System; 2using System ...
- Asp.net导出Excel报表(解决无网格问题)
随着单位活动的增多,各大4S店要求查看活动报名的要求的出现,导出Excel或者是Word文档功能显得尤为重要.可以大量节省编辑的工作时间和工作强度. 今天花了点时间编写了各大报名品牌的 ...
- asp.net 导出excel带图片
protected void btgua_Click(object sender, EventArgs e) { DataTable dt = ds.Tables[0]; if (dt != null ...
- asp.net导出Excel类库
using System; using System.Collections.Generic; using System.Reflection; using System.Web; using Exc ...
最新文章
- Open3D面向机器学习的扩展库
- 【OpenCV】cv::Mat和std::vector之间的相互转换
- html设置excel打开新窗口,怎么在excel的大页面上设置第几页第几页的
- SAP OData服务的catalog service
- Ajax — 新闻列表
- k8s往secret里导入证书_K8S之Secret
- 高可用的 MFS 文件分布式系统(Drdb+heartbeat+MFS )
- Qt工作笔记-进程间的通信(通过QSharedMemory)
- SDN时代更需要有保障的网络
- windows 问题排查
- csdn账号密码泄露了吗
- Tomcat日志分割
- 微信小程序mpvue框架
- Sougou微信文章获取
- OpenGL——顶点属性
- 正弦余弦定理,求圆弧度或度数
- linux安装frps服务,ubuntu搭建frps服务
- 关于neo4j图数据库导出的svg文件打开方式
- Python+Vue计算机毕业设计BeatHouse伴奏交易平台z19pu(源码+程序+LW+部署)
- 苹果手机html吊起拍照,苹果手机照相技巧
热门文章
- 从 AlphaGo 到具有人类智慧的 AI 究竟有多远?François Chollet 有了一些新想法
- 俄罗斯“木船”机器人系统将于2020年部署部队
- 华为发布面向2025十大趋势
- UC伯克利新机器人成果:灵活自由地使用工具
- 12年后,人工智能和人类会是什么样?这是900位专家的看法|报告
- “强化学习之父”萨顿:预测学习马上要火,AI将帮我们理解人类意识
- 为什么说特斯拉研发自动驾驶AI芯片应该引起注意?
- 在这场人工智能“战争”中,这些国家都在做些什么?
- 你的编程技能是否与时俱进? TIOBE 4 月榜单出炉
- 23 年码农经历,33 次创业失败,38 岁身价百亿,快手创始人宿华的逆袭史!