检索包含指定子串的行

例题描述和简单分析

有 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