ASP.NET datable导出excel

本文转载:http://www.cnblogs.com/chwkai/archive/2005/10/08/250426.html

不错的文章:http://www.cnblogs.com/lzhp/archive/2012/08/02/2680763.html

不错文章:http://hcyu2012.blog.163.com/blog/static/165192580201132532526918/

 public void DataTable2Excel(DataTable dtData)
        {


            if (dtData != null)
            {

                Response.Clear();
                Response.Charset = "utf-8";
                Response.AppendHeader("Content-Disposition", "attachment;filename= " + Server.UrlEncode("导出.xls"));
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
                Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件.
                this.EnableViewState = false;
                System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
                System.IO.StringWriter stringWrite = new System.IO.StringWriter(myCItrad);
                System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

                //// 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
                //System.Web.UI.WebControls.GridView dgExport = null;
                //dgExport = new System.Web.UI.WebControls.GridView();
                GridView dgExport = new GridView();
                dgExport.AllowPaging = false;
                dgExport.DataSource = dtData;
                dgExport.DataBind();
                for (int i = 1; i < dgExport.Rows.Count; i++)
                {                    
                    dgExport.Rows[i].Cells[0].Attributes.Add("style", "mso-number-format:'0'");
                    dgExport.Rows[i].Cells[2].Attributes.Add("style", "mso-number-format:'\\@'");
                }
                
                dgExport.RenderControl(htmlWrite);
                Response.Write(stringWrite.ToString());
               Response.Write(@"<style> .text { mso-number-format:'\\@';} </script> ");
                Response.End();   

            }
        }

 

 

GridView export to excel 格式参考

mso-number-format:"0" NO Decimals 
mso-number-format:"0\.000" 3 Decimals 
mso-number-format:"\#\,\#\#0\.000" Comma with 3 dec 
mso-number-format:"mm\/dd\/yy" Date7 
mso-number-format:"mmmm\ d\,\ yyyy" Date9 
mso-number-format:"m\/d\/yy\ h\:mm\ AM\/PM" D -T AMPM 
mso-number-format:"Short Date" 01/03/1998 
mso-number-format:"Medium Date" 01-mar-98 
mso-number-format:"d\-mmm\-yyyy" 01-mar-1998 
mso-number-format:"Short Time" 5:16 
mso-number-format:"Medium Time" 5:16 am 
mso-number-format:"Long Time" 5:16:21:00 
mso-number-format:"Percent" Percent - two decimals 
mso-number-format:"0%" Percent - no decimals 
mso-number-format:"0\.E+00" Scientific Notation 
mso-number-format:"\@" Text 
mso-number-format:"\#\ ???\/???" Fractions - up to 3 digits (312/943) 
mso-number-format:"\0022?\0022\#\,\#\#0\.00" ?12.76 
mso-number-format:"\#\,\#\#0\.00_ \;\[Red\]\-\#\,\#\#0\.00\ " 2 decimals, negative numbers in red and signed
(1.56   -1.56)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

我的WCF之旅(6):在Winform Application中调用Duplex Service出现TimeoutException的原因和解决方案

几个星期之前写了一篇关于如何通过WCF进行 双向通信的文章([原创]我的WCF之旅(3):在WCF中实现双向通信(Bi-directional Communic...

18660
来自专栏恰童鞋骚年

自己动手写一个简单的MVC框架(第一版)

  路由(Route)、控制器(Controller)、行为(Action)、模型(Model)、视图(View)

16720
来自专栏.NET开发那点事

使用Microsoft Fakes进行单元测试(2)

接上一篇使用Microsoft Fakes进行单元测试(1) 下面进行Shim的演示。 2.使用Shim替换静态方法 假设我们需要一个工具方法用来格式化当前时...

23090
来自专栏向治洪

android-async-http框架源码分析

async-http使用地址 android-async-http仓库:git clone https://github.com/loopj/android...

24550
来自专栏知识分享

51采集PCF8591数据通过ESP8266上传C#上位机android 之TCP客户端编程ESP8266使用详解NodeMCU初探ESP8266刷AT固件与nodemcu固件ESP8266使用详解-

这两天测试程序还发现一个bug就是如果客户端断开了,应该检测一下哪个断开了,数据就不应该发向那个连接,,,否则就会报错,然后模块会复位重启 所以加上这段代码 c...

60950
来自专栏大内老A

我的WCF之旅(6):在Winform Application中调用Duplex Service出现TimeoutException的原因和解决方案

几个星期之前写了一篇关于如何通过WCF进行 双向通信的文章([原创]我的WCF之旅(3):在WCF中实现双向通信(Bi-directional Communic...

22580
来自专栏葡萄城控件技术团队

ASP.NET Web API 应用教程(一) ——数据流使用

相信已经有很多文章来介绍ASP.Net Web API 技术,本系列文章主要介绍如何使用数据流,HTTPS,以及可扩展的Web API 方面的技术,系列文章主要...

39580
来自专栏Java架构师学习

Zookeeper-watcher机制源码分析(一)Watcher的基本流程

ZooKeeper 的 Watcher 机制,总的来说可以分为三个过程:客户端注册 Watcher、服务器处理 Watcher 和客户端回调 Watcher

10920
来自专栏菩提树下的杨过

利用FileWatcher实现文件实时监视

FileWatcher能实现对某一目录的文件(新建,改名,内容修改,删除)的实时监视 using System; using System.IO; using ...

23580
来自专栏ZKEASOFT

.Net Core在Middleware中解析RouteData

在ASP.Net Core中,如果直接在Middleware中获取RouteData返回的是空值,这是因为RouterMiddleware还没执行。但有些情况下...

20830

扫码关注云+社区

领取腾讯云代金券