使用ClosedXml查询Excel文件数据,匹配时间并显示
使用Nuget包管理器安装ClosedXml包,VS没网在https://www.nuget.org/ 下载后,包源本地安装至项目
函数:
private void SelectGrab(CancellationToken token, object state)
{
Data someItem;
while (!datas.IsEmpty)
{
datas.TryTake(out someItem);//清空原先的结果
}
if (File.Exists(filepath))
{
try
{
using (XLWorkbook wb = new XLWorkbook(filepath))
{
System.Threading.Tasks.Parallel.ForEach(wb.Worksheets,item=> //使用并行循环,提高效率
{
var rows = item.RowsUsed().Skip(1);//跳过标题行
System.Threading.Tasks.Parallel.ForEach(rows,ite=>
{
if (ite.Cell(2).GetString()!="")
{
DateTime nowTime = DateTime.FromOADate(double.Parse(ite.Cell(2).GetString()));//第二列为时间戳
if (state.ToString() == "0")//采取的筛选策略
{
if (nowTime >= StartTime && nowTime <= EndTime)
{
Data data = new Data(ite.Cell(1).GetString(), DateTime.FromOADate(double.Parse(ite.Cell(2).GetString())).ToString("yyyy/MM/dd"), ite.Cell(3).GetString(), ite.Cell(4).GetString(), ite.Cell(5).GetString(), ite.Cell(6).GetString(), ite.Cell(7).GetString());//自定义结构:包含excel表格中的列名项
datas.Add(data);//自定义集合保存结果
}
}
else//采取的筛选策略
{
System.Threading.Tasks.Parallel.ForEach(dateTimes, it =>//dateTimes为一个list,自定义添加
{
if (it == nowTime)
{
Data data = new Data(ite.Cell(1).GetString(), DateTime.FromOADate(double.Parse(ite.Cell(2).GetString())).ToString("yyyy/MM/dd"), ite.Cell(3).GetString(), ite.Cell(4).GetString(), ite.Cell(5).GetString(), ite.Cell(6).GetString(), ite.Cell(7).GetString());//自定义结构:包含excel表格中的列名项
datas.Add(data);
}
});
}
}
});
});
wb.Dispose();
}
setDT();//刷UI,也可以通过POST发送至UI
GC.Collect();
}
catch (Exception ex)
{
MessageBox.Show("不存在表单"+ StartTime.Year.ToString()+ex.Message);
setDT();//刷UI,也可以通过POST发送至UI
}
}
else
{
MessageBox.Show("源文件路径不存在");
setDT();//刷UI,也可以通过POST发送至UI
}
}
使用ClosedXml查询Excel文件数据,匹配时间并显示的更多相关文章
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- Excel文件数据保存到SQL中
1.获取DataTable /// <summary> /// 查询Excel文件中的数据 /// </summary> /// <param name="st ...
- 上传读取Excel文件数据
/// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...
- VC6.0读取Excel文件数据
啰嗦一下:本人所在公司从事碟式斯特林太阳能发电设备的研发与销售.单台设备图如下: 工作原理如下:整个设备大致可分为五个部分, 1.服务器,负责气象.发电等数据存取,电.网连接等处理: 2.气象站,通过 ...
- springMVC(5)---导入excel文件数据到数据库
springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...
- selenium实现excel文件数据的读、写
在进行软件测试或设计自动化测试框架时,一个不可避免的过程就是: 参数 化,在利用 python 进行自动化测试开发时,通常会使用 excel 来做数据管 理,利用 xlrd.xlwt 开源包来读写 e ...
- ci框架读取上传的excel文件数据
原文链接: https://blog.csdn.net/qq_38148394/article/details/87921373 此功能实现使用到PHPExcel类库,PHPExcel是一个PHP类库 ...
- Sql server2008如何导入Excel文件数据?
sql server 中如何使用Excel文件导入数据?我做个测试,首先建立一个测试表(民族表) --创建一个民族表-- create table BdsNation( Uid int not nul ...
- 将 excel文件数据导入MySQL数据库中
第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创 ...
- java读取excel文件数据导入mysql数据库
这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...
随机推荐
- 从0开发WebGPU渲染引擎:开篇
大家好,本系列会从0开始,开发一个基于WebGPU的路径追踪渲染器,使用深度学习降噪.DLSS等AI技术实现实时渲染:并且基于自研的低代码开发平台,让用户可以通过可视化拖拽的方式快速搭建自定义的Web ...
- TCP和UDP的应用场景
传输层的两个协议,TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议),有各自的应用场景. TCP ...
- cgroup Linux中的资源限制
参考链接:容器技术的基石:cgroup 直接上实验: # docker run --rm -d --cpus=0.1 --memory=100M --name=test redis:alpine WA ...
- 代码随想录算法训练营第一天| LeetCode 704. 二分查找、LeetCode 27. 移除元素
704. 二分查找 题目链接:https://leetcode.cn/problems/binary-search/ 视频链接:https://www.bilibili.c ...
- 2022-1-10 控件学习2 Button、CheckBox、RadioButton、PasswordBox、Image、ToolTip
Button 设置带图片的按钮: 设置button按钮通用类型: CheckBox IsChecked设置是否选中 RadioButton 使用GroupName这 ...
- 并发编程-CompletableFuture解析
1.CompletableFuture介绍 CompletableFuture对象是JDK1.8版本新引入的类,这个类实现了两个接口,一个是Future接口,一个是CompletionStage接口. ...
- 部署安装kafka集群
准备 zookeeper节点: 172.50.13.103 172.50.13.104 172.50.13.105 kafka版本: 2.13-2.7.0 安装步骤 部署安装zookeeper集群.参 ...
- CodeForces CF1846G 题解
CodeForces CF1846G 题解 CodeForces题目链接 洛谷题目链接 标准答案是状压之后,转化成Dijkstra算法跑最短路.我这里提供一个不一样的思路. 题意简述 主人公得了病,有 ...
- 干了这么多年C#,后悔没早点用这种“分页”,简单/高效/易维护
[前言] 干了这么多年C#,后悔没早点用这种"分页",简单/高效/易维护,比其它的分页方式强多了,不信你自己看. [正文] 支持.Net Core(2.0及以上)与.Net Fra ...
- 音视频FAQ(一):视频直播卡顿
一.摘要 本文介绍了视频直播卡顿的四个主要原因,用户网络问题.用户设备性能问题.技术路线的选择和实现问题.因本文主要阐述视频直播的卡顿,故技术路线的实现指的是:CDN供应商的实现问题,包含CDN性能不 ...