asp.net中GridView多行表头导出Excel表头显示不全问题解决方法
本次需要导出的Excel表格格式如下:
项目 |
本周实际 |
本月实际 |
本年实际 |
|||
刷卡额 |
佣金收入 |
刷卡额 |
佣金收入 |
刷卡额 |
佣金收入 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
多表头具体的后台代码是在Row_Created事件中创建的。先看创建代码:
protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
{
//判断创建的行是否为表头行
if (e.Row.RowType == DataControlRowType.Header)
{
TableCellCollection tcHeader = e.Row.Cells;
//清除自动生成的表头
tcHeader.Clear();
tcHeader.Add(new TableHeaderCell());
tcHeader[0].RowSpan = 2;
tcHeader[0].Text = "项目";
tcHeader.Add(new TableHeaderCell());
tcHeader[1].ColumnSpan = 2;
tcHeader[1].Text = "本周实际";
tcHeader.Add(new TableHeaderCell());
tcHeader[2].ColumnSpan = 2;
tcHeader[2].Text = "本月实际";
tcHeader.Add(new TableHeaderCell());
tcHeader[3].ColumnSpan = 2;
tcHeader[3].Text = "本年实际</th></tr><tr>";
tcHeader.Add(new TableHeaderCell());
tcHeader[4].Text = "刷卡额";
tcHeader[4].Attributes.Add("style", "font-weight: bold;text-align: center;");
tcHeader.Add(new TableHeaderCell());
tcHeader[5].Text = "佣金收入";
tcHeader[5].Attributes.Add("style", "font-weight: bold;text-align: center;");
tcHeader.Add(new TableHeaderCell());
tcHeader[6].Text = "刷卡额";
tcHeader[6].Attributes.Add("style", "font-weight: bold;text-align: center;");
tcHeader.Add(new TableHeaderCell());
tcHeader[7].Text = "佣金收入";
tcHeader[7].Attributes.Add("style", "font-weight: bold;text-align: center;");
tcHeader.Add(new TableHeaderCell());
tcHeader[8].Text = "刷卡额";
tcHeader[8].Attributes.Add("style", "font-weight: bold;text-align: center;");
tcHeader.Add(new TableHeaderCell());
tcHeader[9].Text = "佣金收入";
tcHeader[9].Attributes.Add("style", "font-weight: bold;text-align: center;");
}
Excel表格导出方法代码如下:
protected void ExportGridView(GridView gv)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition","attachment;filename=export.xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=GB2312\">");
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
gv.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
根据这个方法导出的表格格式结果有问题,如下:
项目 |
本周实际 |
本月实际 |
本年实际 |
|||
刷卡额 |
佣金收入 |
刷卡额 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我发现表头格式不对,少了3个。
调试了一下,发现gv.HeaderRow.Cells.Count 值为7。
也就是GridView默认表头是7个TableCell(这个和以下有7列数据是一样的)。但是实际上需要有10个TableCell,少了3个TableCell。
因此我在Excel表格导出方法代码里面加了以下语句:
gv.HeaderRow.Cells.Add(new TableCell());
gv.HeaderRow.Cells.Add(new TableCell());
gv.HeaderRow.Cells.Add(new TableCell());
增加了这3条语句之后,导出的Excel表头格式正确。
得出结论:在用通过页面流的方式导出当前页的gridview内容到excel中的方法的时候,如果你写的是多行表头。遇到导出Excel格式缺失的话,你可以考虑在导出方法里面增加表头添加TableCell的方法。
转载于:https://www.cnblogs.com/yy-2323/p/5341825.html
asp.net中GridView多行表头导出Excel表头显示不全问题解决方法相关推荐
- Asp.net中GridView使用详解(引)【转】
Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...
- Java中使用poi导入、导出Excel
Java中使用poi导入.导出Excel 学习了:http://www.cnblogs.com/Damon-Luo/p/5919656.html 转载于:https://www.cnblogs.com ...
- easy poi导出excel表头多语言
原理:自定义一个注解,属性存放多个语言,运行时利用反射,根据选择的语言重新给@Excel的name属性赋值 1.自定义一个注解 @Retention(RetentionPolicy.RUNTIME) ...
- .net 导出excel_C# 导出 Excel 的 6 种简单方法!你会几种?
[CSDN 编者按]C# 导出 Excel 的6种简单方法:数据表导出到 Excel,对象集合导出到 Excel,数据库导出到 Excel,微软网格控件导出到 Excel,数组导出到 Excel,CS ...
- SAS导出EXCEL文件的几种方法
SAS学习 SAS导出EXCEL文件的几种方法 以下基于SAS 9.3简体中文版 一.proc export proc export data=a.dataname outfile='D:\excel ...
- Hutool工具类ExcelWriter导出excel列宽自适应问题解决
前言: 因为项目中需要使用到ExcelWriter导出excel的列宽自适应,下面为解决该问题的经过,希望可以对遇到同样问题的开发者有所帮助. 一.通过查询Hutool官方的api文档发现autoSi ...
- 帆软报表导出Word不显示图片问题解决
帆软报表导出Word不显示图片问题解决 问题:从网页端导出Word版 有的图片不显示 原因:帆软报表悬浮元素不支持Word导出 解决办法:把悬浮元素的图片保存在本地,选中单元格,设置单元格元素为插入图 ...
- Java中FTPClient上传中文目录、中文文件名乱码问题解决方法
Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 参考文章: (1)Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 (2)https://www.cnblog ...
- java script的图片隐藏,java和javascript中过滤掉img形式的字符串不显示图片的方法...
本文实例讲述了java和javascript中过滤掉img形式的字符串不显示图片的方法.分享给大家供大家参考.具体实现方法如下: 1. javascript过滤掉和形式的字符串 复制代码代码如下: 过 ...
最新文章
- attachRouteMatched analysis
- Multiverse: Revolutionary Backend for Alembic // Multiverse: 下一代Alembic后端
- idea 无效的目标发行版_maven构建异常(无效的目标发行版: 1.8)
- windows版mysql5.7.18安装
- ijkplayer-音视频变速播放实现
- BERT4GCN:利用BERT中间层特征增强GCN进行基于方面的情感分类
- 基于统计语言模型的分词方法
- manacher最长回文序列c++
- 电商平台10大商业与盈利模式
- 深度残差网络+自适应参数化ReLU激活函数:调参记录17
- 三角公式(三角函数)
- 必要的先决条件安装失败_先决条件
- 微信小程序【渲染层网络层错误】解决方法
- 玩客云刷ARMBIAN当服务器过程记录
- Lambada表达式的用法
- 3种方法实现弹幕效果
- php gpc,【php】请问PHP中$_GPC[ ]怎么用?
- linux 红帽 服务dns,Linux小红帽搭建dns服务器
- python(pycharm)环境加速安装第三方库
- 计算机工程与应用退修后退稿,《计算机工程与应用》退修意见 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
热门文章
- 手机App都在偷听我说话?窃听疑云全球密布,科技公司连连喊冤
- 李沐新书中文版上线,零基础也可以《动手学深度学习》| 这不是0.7版
- 无需写代码!谷歌推出机器学习模型分析神器,代号What-If
- loadlin.exe
- NexentaStor iSCSI/ NAS 存储服务器软件图解教程(3)——NMV快速上手指南Part2
- Linux下apache+php+mysql配置攻略
- 编写组件,使用JavaScript更新UpdatePanel
- SharePoint 2007 权限代码分享
- 《伟大的小细节:互联网产品设计中的微创新思维》——3.3 位置环境因素
- centos 6.5下安装fpm打包工具