zoukankan
html css js c++ java
导出Excel并设置样式
有时我们需要在datagrid里进行一些操作,比如多层表头,比如隐藏相同的列等等,很多朋友喜欢用OWC或其它方法来导出excel,其实还可以直接由datagrid导出为excel格式。
导出Excel
#region
导出Excel
/**/
///
<summary>
///
方法编号:07
///
方法名称:ExportToExcel
///
内容摘要:将DataGrid导出为Excel文件,结构与DataGrid相同;引用此方法,须传入page对象
///
算法思路:将DataGrid render并以Excel的格式输出给客户端;
///
须取消分页并重新执行绑定后调用此方法
///
</summary>
public
void
ExportToExcel(DataGrid m_grid,System.Web.UI.Page _page)
{
_page.Response.Clear();
//
清除缓冲区流中的所有内容输出
_page.Response.Buffer
=
true
;
_page.Response.Charset
=
"
GB2312
"
;
//
设置输出流的http字符集
//
生成文件名
StringBuilder m_strName
=
new
StringBuilder();
m_strName.Append(DateTime.Now.Year.ToString()).Append(DateTime.Now.Month.ToString())
.Append(DateTime.Now.Day.ToString()).Append(DateTime.Now.Hour.ToString())
.Append(DateTime.Now.Minute.ToString()).Append(DateTime.Now.Second.ToString());
_page.Response.AppendHeader(
"
Content-Disposition
"
,
"
attachment;filename=ExportData
"
+
m_strName.ToString()
+
"
.xls
"
);
_page.Response.ContentEncoding
=
System.Text.Encoding.GetEncoding(
"
GB2312
"
);
//
设置输出流为简体中文
//
设置输出文件类型为excel文件
_page.Response.ContentType
=
"
application/ms-excel
"
;
//
关闭保存视图状态
_page.EnableViewState
=
false
;
System.Globalization.CultureInfo m_CI
=
new
System.Globalization.CultureInfo(
"
ZH-CN
"
,
true
);
//
区域设置
System.IO.StringWriter m_stringWriter
=
new
System.IO.StringWriter(m_CI);
System.Web.UI.HtmlTextWriter m_htmlTextWriter
=
new
System.Web.UI.HtmlTextWriter(m_stringWriter);
//
将m_grid中的内容输出到m_htmlTextWriter
m_grid.RenderControl(m_htmlTextWriter);
_page.Response.Write(m_stringWriter.ToString());
//
将当前所有缓冲的输出发送到客户端,并停止该页执行
_page.Response.End();
}
/**/
///
<summary>
///
方法编号:08
///
方法名称:ExportToExcel
///
内容摘要:将DataGrid导出为Excel文件,结构与DataGrid相同;引用此方法,须传入page对象
///
算法思路:将DataGrid render并以Excel的格式输出给客户端;
///
须取消分页并重新执行绑定后调用此方法
///
</summary>
public
void
ExportToExcel(DataGrid m_grid)
{
this
.ExportToExcel(m_grid,
this
.m_page);
}
/**/
///
<summary>
///
方法编号:09
///
方法名称:SetExcelStyle
///
内容摘要:设置DataGrid导出为EXCEL时的样式
///
</summary>
public
DataGrid SetExcelStyle(DataGrid m_grid)
{
//
给DataGrid增加样式
Table m_tb
=
(Table)m_grid.Controls[
0
];
m_grid.Style.Add(
"
font-size
"
,
"
9pt
"
);
m_grid.Style.Add(
"
font-family
"
,
"
Courier New
"
);
m_grid.Style.Add(
"
heigth
"
,
"
25px
"
);
m_grid.HeaderStyle.Height
=
Unit.Pixel(
25
);
m_grid.GridLines
=
GridLines.Both;
m_tb.BorderStyle
=
BorderStyle.Solid;
m_tb.BorderColor
=
Color.FromKnownColor(KnownColor.Black);
m_grid.ItemStyle.BackColor
=
Color.FromKnownColor(KnownColor.White);
m_grid.FooterStyle.BackColor
=
Color.FromKnownColor(KnownColor.Beige);
m_grid.HeaderStyle.BackColor
=
Color.FromKnownColor(KnownColor.Beige);
m_grid.AlternatingItemStyle.BackColor
=
Color.FromKnownColor(KnownColor.White);
return
m_grid;
}
#endregion
导出Excel
如果datagrid里有linkbutton等服务端控件,则需要手动进行转换为文字,如:
//
将DataGrid里的Linkbutton替换为label对象
foreach
(DataGridItem _item
in
m_outGrid.Items)
{
LinkButton _lb
=
(LinkButton)_item.Cells[
0
].Controls[
0
];
_item.Cells[
0
].Text
=
_lb.Text;
}
愿一路奔跑不退缩,到目前一直从事.Net的B/S,C/S企业应用研发
查看全文
相关阅读:
FILE
基础知识const/typedef/函数指针/回调函数
strchr
ftell
rewind
fread
poj 2309BST解题报告
hdoj 4004The Frog's Games解题报告
哈理工oj 1353LCM与数对解题报告
poj 2453An Easy Problem解题报告
原文地址:https://www.cnblogs.com/syveen/p/231772.html
最新文章
今天被vss给给整疯了!
最近作项目萌发的疑问
我刚注意到的一个园子的问题,dudu看看
最近听说的技术名词
小结一下456月的计划完成
工作计划
小小的发泄下
7月8月总结和9月计划
HDOJ 3642 Get The Treasury(扫描线 + 线段树 + 离散化 立方体的并)
POJ 1177 Picture(扫描线 + 线段树 矩形覆盖区域周长的并)
热门文章
POJ 2482 Stars in Your Window(扫描线 + 线段树 区域统计)
POJ 1151 Atlantis(扫描线 + 线段树 矩形面积的并)
HDOJ 3265 Posters(扫描线 + 线段树 矩形面积的并)
HDOJ 3065 病毒侵袭持续中(AC自动机入门)
POJ 2778 DNA Sequence(AC自动机 + 矩阵乘法)
HDOJ 3255 Farming(扫描线 + 线段树 体积的并)
POJ 2892 Tunnel Warfare(线段树区间合并与查询)
POJ 2464 Brownie Points II(扫描线 + 两棵线段树 区间求和)
SHGetSpecialFolderPath
GetCurrentDirectory和SetCurrentDirectory函数
Copyright © 2011-2022 走看看