gridview 合并单元格 并原样导出数据
使用的方式都是比较简单的,asp.net 如何进行数据的导出有好多种方法,大家可以在网上找到,
一下提供一些合并并原样输出的一个简单的代码:
public void ToExcel(System.Web.UI.Control ctl)
{
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "text/HTML";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
ctl.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
这是数据导出的最简单的方法 我们直接使用组件的渲染方式 这个东西的好处就是对于我们设计好的gridview 的合并样式进行原样的输出
同时也有一种方式就是使用类似xml 的格式进行Excel 数据的导出 这个就需要我们进行数据格式的处理了
页面的效果如下:
合并的代码我以前的博客已有,
代码如下:
public static void MergeRows(GridView gridView,int index)
{
for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--)
{
GridViewRow row = gridView.Rows[rowIndex];
GridViewRow previousRow = gridView.Rows[rowIndex + 1];
for (int i = 0; i < index; i++)
{
if (row.Cells[i].Text == previousRow.Cells[i].Text)
{
row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < 2 ? 2 :
previousRow.Cells[i].RowSpan + 1;
previousRow.Cells[i].Visible = false;
}
}
}
}
index 就是你需要合并对应的那些列的数据
导出的Excel 效果如下:
是原样的效果,但是这种方式是由局限的,总的来说就是伪excel 文件
这是excel 的文件
<div>
<table cellspacing="0" rules="all" border="1" id="GridView1" style="border-collapse:collapse;">
<tr>
<th scope="col">ID</th><th scope="col">depart</th><th scope="col">nanme</th><th scope="col">code</th><th scope="col">colspan</th>
</tr><tr>
<td>2</td><td rowspan="2">First</td><td>dalong</td><td>23</td><td>0</td>
</tr><tr>
<td>3</td><td>dalong</td><td>23</td><td>0</td>
</tr><tr>
<td>2</td><td rowspan="2">seond</td><td>dalong22</td><td>23</td><td>0</td>
</tr><tr>
<td>3</td><td>dalong</td><td>23</td><td>0</td>
</tr><tr>
<td>4</td><td>five</td><td>dalong333</td><td>23</td><td>0</td>
</tr><tr>
<td>5</td><td>six</td><td>dalong44</td><td>23</td><td>0</td>
</tr>
</table>
</div>
然后查看我们的html 页面:
包括一些效果也是没有的,当然这是对于要求不高的情况下可以使用的,如果要求高了,建议还是使用一些比较好的框架吧。
注:
可能会在使用在一个异常的解决方法:
public override void VerifyRenderingInServerForm(Control control)
{
}
就是这个 ,具体的原因可以查看asp.net 组件的对象模型 以及原理。
gridview 合并单元格 并原样导出数据的更多相关文章
- webform gridview合并单元格
gridview合并单元格 由于项目要求,需要合并某些单元格,因此特意封装了如下帮助类: /// <summary> /// 合并单元格 /// </summary> publ ...
- gridview合并单元格
记录用,以前写过,忘记了转自:http://marss.co.ua/MergingCellsInGridView.aspx public class GridDecorator { public st ...
- DEV gridview 合并单元格
private void gv_docargo_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e ...
- gridview 合并单元格后,选中颜色重新绘制
gv_docargo.RowStyle += OnRowStyle; private void OnRowStyle(object sender, DevExpress.XtraGrid.Views. ...
- layui:数据表格如何合并单元格
layui.use('table', function () { var table = layui.table; table.render({ elem: '#applyTab' , url: '$ ...
- 雷林鹏分享:jQuery EasyUI 数据网格 - 合并单元格
jQuery EasyUI 数据网格 - 合并单元格 数据网格(datagrid)经常需要合并一些单元格.本教程将向您展示如何在数据网格(datagrid)中合并单元格. 为了合并数据网格(datag ...
- WPF 导出Excel(合并单元格)
WPF 导出Excel(合并单元格) DataTable 导出Excel(导出想要的列,不想要的去掉) ,B1,B2,B3,B4,B5} MisroSoft.Office.Interop.Excel. ...
- 让我头疼一下午的Excel合并单元格
Excel导出常见问题 excel导出其实不算什么难事 在网上copy下模板代码,填充自己的业务数据,提供一个http接口基本就可以得到你要导出的数据了. 但是,凡事都有例外,截止今天,excel导出 ...
- poi的合并单元格和冻结行列
//创建工作薄(excel) Workbook wb = new HSSFWorkbook(); //创建sheet Sheet createSheet = wb.createSheet(" ...
随机推荐
- Intent在Activity之间传值的几种方式
发这篇博客主要讲一下Android中Intent中如何传值的几种方法: 1:基本数据类型,包含了Java八种基本数据类型和CharSequece文本2:八种数据类新对应数组和CharSequece文本 ...
- json.dumps loads 终于区分出来了
import json dict= {1:2, 3:4, "} print type(dict), dict # test json.dumps json_str = json.dumps( ...
- Oracle11g温习-第九章:表空间和数据文件管理
2013年4月27日 星期六 10:37 1.tablespace 功能:从逻辑上简化数据库的管理 2.tablespace 概述 一个database 对应多个tablespace ,一个table ...
- 用js实现个优先队列吧
队列是一种很常用的数据结构,它是一组遵循先进先出(FIFO)规则的项.在现实生活中,最常见的队列的例子就是排队.队列有一些方法,入队.出队.队列的长度,清空队列等.用js实现一个普通的队列代码如下: ...
- jQuery 插件运行机制和 $冲突解决
1.jQuery.fn.extend(object) 基本插件假设我们要创建一个插件,使一组元素中的文本变为绿色.我们要做的就是添加一个名为greenify的函数, $.fn 将像其他任何jquery ...
- poj 1163 The Triangle 搜索 难度:0
The Triangle Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37931 Accepted: 22779 De ...
- 【转载】oracle索引详解2
原文URL:http://justplayoop1.iteye.com/blog/1259562 一. 索引介绍 1.1 索引的创建 语法 : CREATE UNIUQE | BITMAP INDE ...
- 使用OpenSSL生成证书并配置Https
1.密钥.证书请求.证书概要说明 在证书申请签发过程中,客户端涉及到密钥.证书请求.证书这几个概念.我们以申请证书的流程说明三者的关系.客户端(相对于CA)在申请证书的时候,大体上有三个步骤: 第一步 ...
- 【机器学习PAI实践十二】机器学习算法基于信用卡消费记录做信用评分
背景 如果你是做互联网金融的,那么一定听说过评分卡.评分卡是信用风险评估领域常用的建模方法,评分卡并不简单对应于某一种机器学习算法,而是一种通用的建模框架,将原始数据通过分箱后进行特征工程变换,继而应 ...
- asp.net mvc json数据缓存
一些虚拟主机资源给的少, 如果直接用框架缓存, 估计内存就爆了吧, 如果不用缓存, 虚拟主机自带的数据库也是限制资源的, 访问多了就直接给timeout了, 用json文件形式缓存查询出来的数据, 虽 ...