Java 如何取得 Excel 单元格值并做判断

现有Excel文件emp.xlsx,部分数据如下:

EID

NAME

SURNAME

GENDER

STATE

BIRTHDAY

HIREDATE

DEPT

SALARY

1

Rebecca

Moore

F

California

1974-11-20

2005-03-11

R&D

7000

2

Ashley

Wilson

F

New York

1980-07-19

2008-03-16

Finance

11000

3

Rachel

Johnson

F

New Mexico

1970-12-17

2010-12-01

Sales

9000

4

Emily

Smith

F

Texas

1985-03-07

2006-08-15

HR

7000

5

Ashley

Smith

F

Texas

1975-05-13

2004-07-30

R&D

16000

6

Matthew

Johnson

M

California

1984-07-07

2005-07-07

Sales

11000

7

Alexis

Smith

F

Illinois

1972-08-16

2002-08-16

Sales

9000

8

Megan

Wilson

F

California

1979-04-19

1984-04-19

Marketing

11000

9

Victoria

Davis

F

Texas

1983-12-07

2009-12-07

HR

3000

10

Ryan

Johnson

M

Pennsylvania

1976-03-12

2006-03-12

R&D

13000

需要遍历 Excel 所有单元格,找到等于指定字符串的单元格,返回该单元格右侧的单元格的值。比如找到的是 A1 格则返回 B1 格。如果找到了多个,则返回多个(从代码中读到的)。

例如:指定字符串为”James”,找到右侧的单元格值,结果如下:

Williams

Wilson

 

借助集算器可以很方便地完成件事。
集算器安装包可去润乾网站集算器职场版,运行需要一个授,免版本就用。

JAVA 程序中使用集算器,可以直接执行语句:

            public static void test() {

                        Connection con = null;

                        Statement st;

                        try {

                                    Class.forName("com.esproc.jdbc.InternalDriver");

                                    con = DriverManager.getConnection("jdbc:esproc:local://");

 

                                    st = con.createStatement();

                                    ResultSet rs = st

                                                            .executeQuery("=file(\"emp.xlsx\").xlsimport@w().(~.(if(~==\"James\",~[+1])).select(~)).conj()");

 

                                    while (rs.next()) {

                                                System.out.println(rs.getObject(1).toString());

                                    }

                                   

                        } catch (Exception e) {

                                    System.out.println(e);

                        } finally {

                                    // 关闭连接

                                    if (con != null) {

                                                try {

                                                            con.close();

                                                } catch (Exception e) {

                                                            System.out.println(e);

                                                }

                                    }

                        }

            }

集算器与 JAVA 集成的一步信息可参考:Java 如何 SPL 脚本》