epplus动态合并列数据
private static void SetColMerge(DataTable tb, ExcelWorksheet worksheet, string dtColumnName)
{
KeyValuePair<bool, int> isMergeAndStartRowIndex = new KeyValuePair<bool, int>(false, 2);
bool isLast = false;
for (int i = 1; i <= tb.Rows.Count; i++)
{
for (int j = 1; j <= tb.Columns.Count; j++)
{
if (tb.Columns[j - 1].ColumnName == dtColumnName)
{
if (i != 1 && tb.Rows[i - 1][j - 1].ToString() != tb.Rows[i - 2][j - 1].ToString())
{
isMergeAndStartRowIndex = new KeyValuePair<bool, int>(true, isMergeAndStartRowIndex.Value);
}
if (i == tb.Rows.Count)
{
isLast = true;
isMergeAndStartRowIndex = new KeyValuePair<bool, int>(true, isMergeAndStartRowIndex.Value);
}
if (isMergeAndStartRowIndex.Key)
{
int startRowIndex = isMergeAndStartRowIndex.Value;
if (isLast)
{
//判断当前行和上一行是不是一样
if (tb.Rows[i - 1][j - 1].ToString() != tb.Rows[i - 2][j - 1].ToString())
{
worksheet.Cells[startRowIndex, j, i, j].Merge = true;
}
else
{
worksheet.Cells[startRowIndex, j, i + 1, j].Merge = true;
}
}
else
{
worksheet.Cells[startRowIndex, j, i, j].Merge = true;
isMergeAndStartRowIndex = new KeyValuePair<bool, int>(false, i + 1);
}
}
}
}
}
}
epplus动态合并列数据的更多相关文章
- jquery 实现table的动态合并列
常见的table是一行一列的形式,当有时会遇到后台的数据在前台显示时, 需要显示多对一,eg: 这是后台初始的数据,现在我要显示为: 思路:将第3列的td的rowspan改为为行数, 删除第一行之外的 ...
- Excel2010如何合并列数据
小编以下图的Excel数据文件为例,如下图,有两列数据,第一列是歌曲名,第二列是该歌曲的演唱者,他们是有关联呢,那么如何把他们合并到同一列呢. 首先点击第3列的开始空白格,在这里编辑公式 =a1& ...
- C# 使用Epplus导出Excel [3]:合并列连续相同数据
C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...
- Excel动态合并行、合并列
背景: 在北京工作的时候,又一次同事问了我这样一个问题,说我要把从数据库获取到的数据直接通过NPOI进行导出,但是我对导出的格式要特殊的要求,如图: 冥思苦想,最终顺利帮同事解决问题,虽然有点瑕疵,但 ...
- SQL(横表和纵表)行列转换,PIVOT与UNPIVOT的区别和使用方法举例,合并列的例子
使用过SQL Server 2000的人都知道,要想实现行列转换,必须综合利用聚合函数和动态SQL,具体实现起来需要一定的技巧,而在SQL Server 2005中,使用新引进的关键字PIVOT/UN ...
- 动态合并GridView数据行DataRow的列
前段时间,Insus.NET一直在演示GridView控件Header头行或列:<动态变更GridView控件列名>和<动态合并或定制GridView控件Header头某些列> ...
- SQL语法集锦三:合并列值与分拆列值
本文转载http://www.cnblogs.com/lxblog/archive/2012/09/29/2708724.html 在SQL中分拆列值和合并列值老生常谈了,从网上搜刮了一下并记录下来, ...
- SQL 合并列值和拆分列值
合并列值 表结构,数据如下: id value ----- ------ aa bb aaa bbb ccc 需要得到结果: id values ------ ----------- aa,bb aa ...
- AppCan学习笔记----关闭页面listview动态加载数据
AppCan页面关闭 AppCan 的页面是由两个HTML组成,如果要完全关闭的话需要在主HTML eg.index.html中关闭,关闭方法:appcan.window.close(-1); 管道 ...
随机推荐
- VirtualBox网络之仅主机(Host-Only)网络
https://blog.csdn.net/dkfajsldfsdfsd/article/details/79441874
- 使用SQL语句查询Elasticsearch索引数据
Elasticsearch 的官方查询语言是 Query DSL,存在毕竟有存在的道理,存在即合理.SQL 作为一个数据库查询语言,它语法简洁,书写方便而且大部分服务端程序员都清楚了解和熟知它的写法. ...
- vs2017 不能加载.vdproj
需要添加Microsoft Visual Studio Installer Projects扩展 下载地址:https://marketplace.visualstudio.com/items?it ...
- C++入门基础知识(一)
一:关键字 在C语言中,我们已经学习过了很多的关键字,例如:static,struct等,下面展现一下C++中的一些关键字. 二:命名空间 在C/C++中,变量.函数和类都是大量存在的,这些变量.函数 ...
- 发明专利定稿&递交申请啦,开心
也不想写些什么,只是想简单的分享一下当前的心情! 第一版到最后一版中间因为各种事情耽误,一直弄到现在.5月中旬找的专利代理局中间连续修改很多次,从大改到小改,再到微调真的是学习到了! 下面就是搞定&l ...
- 网页上图片点击放大js代码
//图片弹出事件 function showPict(path) { src = path; var mask = "<div style = 'position: absolute; ...
- EasyUI_前台js_分页
1.html: <table id="DataTb" title="客户信息" class="easyui-datagrid" sty ...
- 你不知道的css各类布局(五)之em布局、rem布局
em布局/rem布局 em和rem的区别 在了解弹性布局前我们需要先知道em和rem rem:font size of the root element,rem是相对于根元素<html>来 ...
- 分库分布的几件小事(四)分库分表的id主键生成
1.问题 其实这是分库分表之后你必然要面对的一个问题,就是id咋生成?因为要是分成多个表之后,每个表都是从1开始累加,那肯定不对啊,需要一个全局唯一的id来支持.所以这都是你实际生产环境中必须考虑的问 ...
- python 列表字典按照字典中某个valu属性进行排序
对用户名进行排序 1. 直接上代码 base_dn_list = [ {', 'tenant': 'HAD', 'role': {'roleID': 'project', 'roleName': '项 ...