Excel文件读写模块【查找单元格(根据值)】,如何通过日期进行单元格查找

动作开发 · 1435 次浏览
RRRRapid 创建于 2023-04-24 10:30

各位好,我今天实验通过指定的日期定位 Excel 数据表中的单元格,遇到一些问题,直接通过日期文本(如"2023/4/24")进行查找但失败了,希望能得到一些指导,具体的情况如下:

数据表如下,其中〈日期〉列格式为“短日期”

我尝试使用【Excel文件读写】模块,步骤如下:
1、通过【打开Workbook】读取指定位置的 Excel 文档(成功)


2、通过【查找单元格(根据值)】,试图查找 "2023/4/24"

运行结果不理想,提示找不到有该值的单元格

我尝试了修改 Excel 文档,将日期列格式设置为【常规】,然后在 quicker 中 设置查找值为“45040”,在该条件下可以成功查找。

但要将 Excel 文档中的日期列设置为常规显示成数字是不太合理的,有什么办法可以让我直接通过文本日期如(如"2023-04-24")进行单元格查找吗?

希望有经验的小伙伴能给予帮助,谢谢!


CL 2023-04-24 11:04 :

保持短日期格式的情况下,查找45040可以找到么?

RRRRapid 回复 CL 2023-04-24 13:09 :

你好,测试过了,也找不到



CL 回复 RRRRapid 2023-04-24 13:21 :

确实,我查看了一下代码,这里目前是判断的文本值。这种日期可以直接当做普通文本保存么?

CL 回复 RRRRapid 2023-04-24 13:28 :

这个文件如果没隐私信息,也可以发一下,我看看那个日期读出来是什么样的数据。

RRRRapid 回复 CL 2023-04-24 13:29 :

嗯,虽然可行但不好控制,因为大家的使用习惯,日期往往是通过 ctrl+: 自动输入,或者直接输入 2023-4-24 ,Excel 会自动将其识别为日期,而且部分业务上有要求必须是日期格式,不能是文本格式。

RRRRapid 回复 CL 2023-04-24 13:32 :

文件本身不敏感,数据也是我随意填的。不过怎么发呢,这里可以上传附件吗?您可以尝试新建个 Excel 文档,两列,一列日期,一列随意写点文本。

日期 内容
2023/4/23 1、测试1
2023/4/24 1、测试
2023/4/25  
2023/4/26  
RRRRapid 最后更新于 2023-04-24 13:34
CL 回复 RRRRapid 2023-04-24 13:33 :

qq邮箱 197906

RRRRapid 回复 CL 2023-04-24 13:37 :

已发送,请查收

臭冬瓜 回复 CL 2023-04-24 13:41 :

刚刚测试了一下,用EXCEL模块读取字段值是:2023-04-24 00:00:00

CL 回复 RRRRapid 2023-04-24 13:44 :

用这个试一下,内部找单元格的时候是判断的文本值。


RRRRapid 回复 CL 2023-04-24 14:01 :

已测试,4/23/23 这种 月/日/年 的形式,可以成功定位单元格;2023-04-23 00:00:00 这种形式的不能定位到单元格。

这个模块后期会改进匹配方式吗?

RRRRapid 最后更新于 2023-04-25 14:21
CL 回复 RRRRapid 2023-04-24 14:10 :

这个在底层依赖NPOI库,看了一下代码,似乎没有什么可以修改的。

RRRRapid 回复 CL 2023-04-24 14:12 :

好的,我先自行记录采用 月/日/年 (M-d-yy) 的方式去匹配日期,建议可以在帮助文档里提示下大家。

RRRRapid 最后更新于 2023-04-26 09:54
CL 回复 RRRRapid 2023-04-24 14:16 :

好的

RRRRapid 回复 CL 2023-04-24 14:22 :

多谢帮助!

回复内容

试试在值后面加个任意多字符的符号,类似正则

RRRRapid 2023-04-28 17:03
#2

结论:

建议在使用查找前先使用【Excel文件读写】-【读取单元格】功能去测试读取一下欲匹配的对象,比如我上面提出的要匹配的日期,虽然 Excel 里显示为短日期(年月日 yyyy/MM/dd),但读取出来发现是 (月日年 M-d-yy),这时就知道要匹配此类数据,要将日期 2023-04-28 修改为 4/28/23 才能成功匹配。


RRRRapid 最后更新于 2023-04-28 17:04
回复主贴