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();
}
}
查看全文
相关阅读:
UML建模之用例图关系
python模块介绍
Delphi操作XML(七)
Delphi操作XML(一)
Delphi操作XML(五)
Delphi操作XML(六)
Delphi操作XML(二)
Delphi操作XML(四)
Delphi操作XML(三)
决心好好写cnblogs
原文地址:https://www.cnblogs.com/zijinguang/p/1509564.html
最新文章
android TextView可滚动
加载进度条直到线程结束
ArcGIS Server API For Flex 安全沙箱问题
ExtJS2.X内CheckboxGroup取值和赋值的操作(重写getValue和setValue)
javascrpt获取屏幕坐标等信息
Socket Error:Connection refused
Javascript 对字符串,数组的操作转自百度空间
关于extjs中的tabpanel的刷新等若干问题,解决tabpanel内页面刷新,更新数据等问题。
判断extjs内的tabs的状态。
Extjs 2.x弹窗出现在另一个窗体后面的不完全解决方案
热门文章
如何远程部署Analysis Services 项目到服务器上
什么是AOP
Java常见问题集锦
LINUX下的文件结构
Android开发:如何实现TCP和UDP传输
java设计模式——代理模式
Android之TextView属性详解
归并排序
UML之类图与对象图
Linux关机命令详解
Copyright © 2011-2022 走看看