C# 按部门拆分excel文件
按照所属部门不同将excel文件拆分成多个文件
string excel_path = @"G:\zhyue\backup\2018-08-01 读取腾讯邮箱接口-获取一个月内未接收到外部邮件且已离职的邮箱\address_biz (4).csv";
string save_path = @"G:\zhyue\backup\2018-08-01 读取腾讯邮箱接口-获取一个月内未接收到外部邮件且已离职的邮箱\拆分excel\"; //解决中文乱码
TxtLoadOptions lo = new TxtLoadOptions();
lo.Encoding = Encoding.Default; //打开excel文件
Workbook curr_wb = File.Exists(excel_path) ? new Workbook(excel_path, lo) : new Workbook();
//打开第一个sheet
Worksheet sheet_first = curr_wb.Worksheets[];
Cells Cells = sheet_first.Cells;
//一共多少行数据
int rows = sheet_first.Cells.MaxDataRow + ; //不同的部门名称集合
List<string> lst_departments = new List<string>();
//excel的数据集合
List<UserInfo> lst_excel = new List<UserInfo>(); for (int i = ; i < rows; i++)
{//从第二行开始
lst_excel.Add(new UserInfo()
{
username = Cells[i, ].StringValue,
email = Cells[i, ].StringValue,
othername = Cells[i, ].StringValue,
department = Cells[i, ].StringValue,
contact = Cells[i, ].StringValue,
phone = Cells[i, ].StringValue,
sex = Cells[i, ].StringValue,
position = Cells[i, ].StringValue,
number = Cells[i, ].StringValue,
bindwechat = Cells[i, ].StringValue,
remark = Cells[i, ].StringValue
});
} //遍历不同的部门
lst_excel.Select(x => x.department).Distinct().ToList().ForEach(x =>
{
Workbook wb1 = new Workbook();
Worksheet sheet_first1 = wb1.Worksheets[];
Cells Cells1 = sheet_first1.Cells; //新生成的excel文件名
string[] str_arr1 = x.Split('/');
string department_new_name = str_arr1.Length > ? x.Substring(x.IndexOf('/') + ).Replace('/', '-') : x; Cells1[, ].PutValue("姓名");
Cells1[, ].PutValue("电子邮件");
Cells1[, ].PutValue("别名");
Cells1[, ].PutValue("所属部门");
Cells1[, ].PutValue("联系电话");
Cells1[, ].PutValue("手机");
Cells1[, ].PutValue("性别");
Cells1[, ].PutValue("职务");
Cells1[, ].PutValue("编号");
Cells1[, ].PutValue("绑定微信");
Cells1[, ].PutValue("备注");
int i = ;//当前行数 从第2行开始
//查找excel中的这些部门并遍历
lst_excel.Where(y => y.department == x).ToList().ForEach(y =>
{
Cells1[i, ].PutValue(y.username);
Cells1[i, ].PutValue(y.email);
Cells1[i, ].PutValue(y.othername);
Cells1[i, ].PutValue(y.department);
Cells1[i, ].PutValue(y.contact);
Cells1[i, ].PutValue(y.phone);
Cells1[i, ].PutValue(y.sex);
Cells1[i, ].PutValue(y.position);
Cells1[i, ].PutValue(y.number);
Cells1[i, ].PutValue(y.bindwechat);
Cells1[i, ].PutValue(y.remark); i++;
}); wb1.Save(save_path + department_new_name + ".xlsx", SaveFormat.Xlsx);
});
结果:
每个excel里面都只有自己部门的数据
C# 按部门拆分excel文件的更多相关文章
- C#将一个excel工作表根据指定范围拆分为多个excel文件
C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其 ...
- excel多个sheet表拆分成独立的excel文件
一.问题: 公司做一个项目,给的用户上报文是一个包含多个sheet页的excel文件, 但是在实际处理报文数据的时候需要拆分excel文件为多个独立的报文excel文件 二.解决: (1)一个一个的复 ...
- WPS 2019 多个sheet表拆分成独立的excel文件
参考: https://www.cnblogs.com/hackxiyu/p/8945975.html 场景:将多个sheet表拆分成独立的excel文件 一.安装VB工具: 默认情况下:wps -- ...
- 银行业务-Excel文件的拆分逻辑
一.问题: 随着银行业务数据量的急剧增加,原始的人力统计数据已经不能满足要求, 需要开发一款可以实现自动化数据统计的系统平台,进行数据的采集.加工.过滤.统计.预测 其中数据采集方式又以[Excel] ...
- Python 操作 MS Excel 文件
利用 Python 对 Excel 文件进行操作需要使用第三方库: openpyxl,可执行 pip install openpyxl 进行安装 1. 导入 openpyxl 模块 导入 openpy ...
- C#操作Excel文件
.Net平台上对Excel进行操作主要有两种方式.第一种,把Excel文件看成一个数据库,通过OleDb的方式进行读取与操作:第二种,调用Excel的COM组件.两种方式各有特点. 注意一些简单的问题 ...
- Java Struts2 POI创建Excel文件并实现文件下载
Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...
- 互联网上那些excel文件
互联网上那些excel文件 文/玄魂 目录 互联网上那些excel文件 前言 1.1 查找包含指定值的excel文件 1.2 查找邮箱 1.3 查找身份证号 1.4 查找管理人员联系信息 1.5 获 ...
- 使用Aspose.Cells组件生成Excel文件
生成带表头的Excel文件,格式如下显示. 当然更复杂的一些也可以通过 合并单元格的方法 public void Merge(int firstRow, int firstColumn, int to ...
随机推荐
- web环境中的spring MVC
1. web.xml文件的简单详解 在web环境中, spring MVC是建立在IOC容器的基础上,要了解spring mvc,首先要了解Spring IOC容器是如何在web环境中被载入并起作用的 ...
- WampServer访问出现403forbidden的问题解决
1,软件装上以后出现所有服务运行,80端口未被占用的情况下服务器一直处于离线状态 解决方案如下: 网络上面很多教程多说切换服务器为在线状态即可,但是我发现我的菜单里面并没有,用命令又嫌麻烦 在图表上面 ...
- MySQL数据库的账户管理
账户管理 在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的crud MySQL账户体系:根据账户所具有的 ...
- 【kuangbin】计算几何部分最新模板
二维几何部分 // `计算几何模板` ; const double inf = 1e20; const double pi = acos(-1.0); ; //`Compares a double t ...
- EJB与JavaBean
JavaBean是一个组件,而EJB就是一个组建框架.JavaBean面向的是业务逻辑和表示层的显示,通过编写一个JavaBean,可以将业务逻辑的事件和事务都放在其中,然后通过它的变量属性将所需要的 ...
- ubuntu编译安装protobuf
测试环境:Ubuntu 16.04 LTS 到protobuf的release页面 下载源码:https://github.com/protocolbuffers/protobuf/releases/ ...
- 关于dubbo调度时出现Request processing failed; nested exception is com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method insertTestTb in the service cn.cuibusi.core.service.TestTbService.的解决办法
在用dubbo跨项目调度service时出现如下错误: 错误原因:pojo没有实现序列化 解决方法:在pojo实现序列化接口即可
- JavaScript设计模式-5.接口
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 微服务Kong(三)——添加一个API
在开始前,请确保您已经安装了KONG服务,并且已经启动了KONG服务. 在本节中,您可以学习到:如何在KONG层添加一个API.这是您使用KONG来管理您的API的第一步.对于此篇教程,我们将使用 h ...
- No result defined for action and result input
今天在编程的时候,我遇到了No result defined for action and result input的错误,这个错误想必大家都有遇到过吧,我今天发了很长时间弄这个错误,我以为我的Act ...