如何在 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());
看看是否有帮助。
我制作了一个包含两个 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());
看看是否有帮助。