本次需要导出的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表头显示不全问题解决方法相关推荐

  1. Asp.net中GridView使用详解(引)【转】

    Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...

  2. Java中使用poi导入、导出Excel

    Java中使用poi导入.导出Excel 学习了:http://www.cnblogs.com/Damon-Luo/p/5919656.html 转载于:https://www.cnblogs.com ...

  3. easy poi导出excel表头多语言

    原理:自定义一个注解,属性存放多个语言,运行时利用反射,根据选择的语言重新给@Excel的name属性赋值 1.自定义一个注解 @Retention(RetentionPolicy.RUNTIME) ...

  4. .net 导出excel_C# 导出 Excel 的 6 种简单方法!你会几种?

    [CSDN 编者按]C# 导出 Excel 的6种简单方法:数据表导出到 Excel,对象集合导出到 Excel,数据库导出到 Excel,微软网格控件导出到 Excel,数组导出到 Excel,CS ...

  5. SAS导出EXCEL文件的几种方法

    SAS学习 SAS导出EXCEL文件的几种方法 以下基于SAS 9.3简体中文版 一.proc export proc export data=a.dataname outfile='D:\excel ...

  6. Hutool工具类ExcelWriter导出excel列宽自适应问题解决

    前言: 因为项目中需要使用到ExcelWriter导出excel的列宽自适应,下面为解决该问题的经过,希望可以对遇到同样问题的开发者有所帮助. 一.通过查询Hutool官方的api文档发现autoSi ...

  7. 帆软报表导出Word不显示图片问题解决

    帆软报表导出Word不显示图片问题解决 问题:从网页端导出Word版 有的图片不显示 原因:帆软报表悬浮元素不支持Word导出 解决办法:把悬浮元素的图片保存在本地,选中单元格,设置单元格元素为插入图 ...

  8. Java中FTPClient上传中文目录、中文文件名乱码问题解决方法

    Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 参考文章: (1)Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 (2)https://www.cnblog ...

  9. java script的图片隐藏,java和javascript中过滤掉img形式的字符串不显示图片的方法...

    本文实例讲述了java和javascript中过滤掉img形式的字符串不显示图片的方法.分享给大家供大家参考.具体实现方法如下: 1. javascript过滤掉和形式的字符串 复制代码代码如下: 过 ...

最新文章

  1. attachRouteMatched analysis
  2. Multiverse: Revolutionary Backend for Alembic // Multiverse: 下一代Alembic后端
  3. idea 无效的目标发行版_maven构建异常(无效的目标发行版: 1.8)
  4. windows版mysql5.7.18安装
  5. ijkplayer-音视频变速播放实现
  6. BERT4GCN:利用BERT中间层特征增强GCN进行基于方面的情感分类
  7. 基于统计语言模型的分词方法
  8. manacher最长回文序列c++
  9. 电商平台10大商业与盈利模式
  10. 深度残差网络+自适应参数化ReLU激活函数:调参记录17
  11. 三角公式(三角函数)
  12. 必要的先决条件安装失败_先决条件
  13. 微信小程序【渲染层网络层错误】解决方法
  14. 玩客云刷ARMBIAN当服务器过程记录
  15. Lambada表达式的用法
  16. 3种方法实现弹幕效果
  17. php gpc,【php】请问PHP中$_GPC[ ]怎么用?
  18. linux 红帽 服务dns,Linux小红帽搭建dns服务器
  19. python(pycharm)环境加速安装第三方库
  20. 计算机工程与应用退修后退稿,《计算机工程与应用》退修意见 - 论文投稿 - 小木虫 - 学术 科研 互动社区...

热门文章

  1. 手机App都在偷听我说话?窃听疑云全球密布,科技公司连连喊冤
  2. 李沐新书中文版上线,零基础也可以《动手学深度学习》| 这不是0.7版
  3. 无需写代码!谷歌推出机器学习模型分析神器,代号What-If
  4. loadlin.exe
  5. NexentaStor iSCSI/ NAS 存储服务器软件图解教程(3)——NMV快速上手指南Part2
  6. Linux下apache+php+mysql配置攻略
  7. 编写组件,使用JavaScript更新UpdatePanel
  8. SharePoint 2007 权限代码分享
  9. 《伟大的小细节:互联网产品设计中的微创新思维》——3.3 位置环境因素
  10. centos 6.5下安装fpm打包工具