zoukankan
html css js c++ java
GridView数据导出到Excel的类
今天碰到个问题,需要根据设置把GridView中的数据中的一页或全部导出到Excel表中,
故新写一个类,希望对各位友人有帮助。本类的基本难点说明中都已经做备注,有不明白
可以直接联系。
Code
/**/
///
<summary>
///
把Gridview中数据导入到Excel的类
///
</summary>
public
class
GridViewToExcel
{
public
GridViewToExcel()
{
//
//
TODO: 在此处添加构造函数逻辑
//
}
/**/
///
<summary>
///
///
把Gridview中数据导入到Excel中
///
</summary>
///
<param name="gv">
需要导出数据的Gridview
</param>
///
<param name="ds">
Gridview的数据源
</param>
///
<param name="strFileName">
默认的导出Excel的文件名
</param>
///
<param name="bolPart">
全部还是部分导出到Excel.部分:true. 全部:false
</param>
public
static
void
ConvertToExcel(GridView gv, DataSet ds,
string
strFileName,
bool
bolPart)
{
gv.AllowPaging
=
bolPart;
//
设置导出数据是全部还是部分
gv.DataSource
=
ds;
gv.DataBind();
for
(
int
i
=
0
; i
<
gv.Columns.Count; i
++
)
//
设置每个单元格
{
gv.Columns[i].ItemStyle.HorizontalAlign
=
HorizontalAlign.Left;
for
(
int
j
=
0
; j
<
gv.Rows.Count; j
++
)
{
gv.Rows[j].Cells[i].Attributes.Add(
"
style
"
,
"
vnd.ms-excel.numberformat:@;
"
);
}
}
System.IO.StringWriter sw
=
new
System.IO.StringWriter();
HtmlTextWriter htw
=
new
HtmlTextWriter(sw);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset
=
"
GB2312
"
;
HttpContext.Current.Response.ContentEncoding
=
System.Text.Encoding.UTF7;
//
设置UTF8有时候出乱码
strFileName
+=
"
.xls
"
;
HttpContext.Current.Response.ContentType
=
"
application/ms-excel
"
;
HttpContext.Current.Response.AddHeader(
"
content-disposition
"
,
"
attachment;filename=
"
+
HttpUtility.UrlPathEncode(strFileName));
//
设置默认文件名
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
//
预防出现控件必须放在具有 runat=server 的窗体标记内的错误
Page page
=
new
Page();
HtmlForm form
=
new
HtmlForm();
gv.EnableViewState
=
false
;
page.EnableEventValidation
=
false
;
page.DesignerInitialize();
page.Controls.Add(form);
form.Controls.Add(gv);
page.RenderControl(htw);
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
}
}
查看全文
相关阅读:
Java学习:冒泡排序和选择排序
Java学习:多态
Java学习:抽象类与接口
Java学习:继承
Java学习:标准类
Java学习:方法简介
传参的本质
new 关键字做的事
一个引用类型的对象占多大堆空间
栈中空间大小
原文地址:https://www.cnblogs.com/zijinguang/p/1509564.html
最新文章
Python运算符
Python编码与变量
Python的socket模块与交互式指令
004.day02
003.第4天
002.大数据第二天
模板类
函数模板机制探究
普通函数和函数模板在一起研究
数组类型和函数指针类型语法知识梳理
热门文章
纯虚函数和抽象类
多态原理探究&&------
c++多态
c++多继承
c++面向对象继承
c++运算符重载
Java学习:Math类
Java学习:Integer类和Character类
Java:形式参数问题和返回值问题
Java学习:内部类
Copyright © 2011-2022 走看看