检索包含指定子串的行

例题描述和简单分析

有 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