2016-08-10 4 views
0

Ich habe eine Vorlage mit zwei jx gemacht: jede Anweisungen. Der erste verweist auf den anderen und sollte einen Wert unter allen Spalten in der zweiten Tabelle suchen.Wie referenziert man einen Dynamikbereich innerhalb eines jeden in JXLS?

Es sieht ungefähr so ​​aus:

A1: jx: jede (items = "Mitarbeiter" var = "Mitarbeiter" lastCell = "A2")

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

B1:

C1: jx: jedes (item = "Gehalt" var = "Gehalt" lastCell = "C1 ")

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

Also, was ich versuche, hier zu tun ist, alle Mitarbeiter aufzulisten, und für jeden zeigen das Gehalt. Die Schleifen funktionieren gut. Aber das Problem ist, dass, wenn Zeilen werden in der ersten Schleife wiederholt die Formel iteriert über Zeilen in der zweiten stattdessen eine Reihe von erstellen:

Was erhalte ich:

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 

Was ich will, :

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)) 

Antwort

0

Versuchen mit

Standardformel Prozessor einzustellen

und sehen, ob es hilft.

+1

Ich erreichte dies durch: JxlsHelper.getInstance(). SetUseFastFormulaProcessor (false) .processTemplate (ist, os, Kontext); – Barsum

Verwandte Themen