如何在 JXLS 中的 each 中引用动态范围?

How to reference a dynamic range inside an each in JXLS?

我制作了一个包含两个 jx:each 语句的模板。第一个引用另一个,应该在第二个 table.

的所有列中查找一个值

看起来像这样:

A1: jx:each(items="employees" var="employee" lastCell="A2")

A1:${employee.id} A2:=INDEKS(C1;MATCH(A1;C1;0))

B1:

C1: jx:each(items="salaries" var="salary" lastCell="C1")

C1:${salary.employeeId} C2:${salary.value}

所以我在这里要做的是列出所有员工,并显示每个员工的薪水。循环工作正常。但问题是,当在第一个循环中重复行时,公式在第二个循环中迭代行而不是创建范围:

我得到的是:

A1:emp1 A2:=INDEX(F2;MATCH(A1;F2;0))
B1:emp2 B2:=INDEX(G2;MATCH(B1;G2;0))
C1:emp3 C2:=INDEX(G2;MATCH(C1;H2;0))
D1:emp4 D2:=INDEX(G2;MATCH(D1;I2;0))

E1:

F1: emp1 F2: 100,000
G1: emp1 G2: 100,020
H1: emp1 H2: 100,040
I1: emp1 I2: 100,060

我想要的:

A1:emp1 A2:=INDEKS(F2:H2;MATCH(A1;F2:H2;0))
B1:emp2 B2:=INDEKS(F2:H2;MATCH(B1;F2:H2;0))
C1:emp3 C2:=INDEKS(F2:H2;MATCH(C1;F2:H2;0))
D1:emp4 D2:=INDEKS(F2:H2;MATCH(D1;F2:H2;0))

尝试使用

设置标准公式处理器
  xlsArea.setFormulaProcessor(new StandardFormulaProcessor());

看看是否有帮助。