检索包含指定子串的行
例题描述和简单分析
有 Excel 文件 assignment.xlsx,数据如下所示:
1234 | qwer | asdf | zxcv |
ghjk | tyui | 4567 | xcvb |
zgheib | dfgdfh | 1111 | hjkl |
2222 | 5rw34 | 11zgheib22 | 25twq |
qqqq | eeee | 2222 | 33333 |
123 | zgh | eib | 4321 |
找到所有包含串 zgheib 的单元格,并在控制台输出该单元格所在的行,结果如下:
zgheib dfgdfh 1111 hjkl
2222 5rw34 11zgheib22 25twq
解法及简要说明
在集算器中编写脚本 p1.dfx,如下所示:
A | |
1 | =file("assignment.xlsx").xlsimport@s() |
2 | =A1.split("\n").select(pos(~,"zgheib")).concat@n() |
3 | >output(A2) |
简要说明:
A1 Excel读成由制表符作为列分隔符,换行符作为行分隔符的串
A2 A1串按换行符拆分成序列,找出当前串中包含子串zgheib的成员,结果序列按换行符拼成串
A3 结果输出到控制台
JAVA 集成这段代码的方法可参考:《Java 如何调用 SPL 脚本》。
https://stackoverflow.com/questions/61406631/search-algorithm-for-excel-document-in-java
英文版