From 7d2a9093da58b2d0ede4d877a15af1adc4618f38 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Sat, 19 Jul 2014 10:09:00 +0000 Subject: [PATCH] Turns out that .xlsx files can have multiple link tables, add a test file which shows this (support to follow) git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1611878 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xssf/model/TestExternalLinksTable.java | 7 +++++++ test-data/spreadsheet/ref2-56737.xlsx | Bin 0 -> 11474 bytes 2 files changed, 7 insertions(+) create mode 100644 test-data/spreadsheet/ref2-56737.xlsx diff --git a/src/ooxml/testcases/org/apache/poi/xssf/model/TestExternalLinksTable.java b/src/ooxml/testcases/org/apache/poi/xssf/model/TestExternalLinksTable.java index b2c9aff14..612924ad5 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/model/TestExternalLinksTable.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/model/TestExternalLinksTable.java @@ -81,4 +81,11 @@ public final class TestExternalLinksTable { assertEquals("Defines", name.getSheetName()); assertEquals("$A$1", name.getRefersToFormula()); } + + @Test + public void readWithReferencesToTwoExternalBooks() { + XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("ref2-56737.xlsx"); + + // TODO Fix so we can see both of them... + } } diff --git a/test-data/spreadsheet/ref2-56737.xlsx b/test-data/spreadsheet/ref2-56737.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bd21fe8c01636a3105544d6e2c015c561237ab89 GIT binary patch literal 11474 zcmeHtby$>ZyYJAQ(%qmm42^Un(%mt1gEUCDg0wJ{lp-}EAp_DN2uLd+-4X-Ry+_yj zj%%^p`|NYB^Ut~V_x>^OHS^B%yWZ!1?)!JAhAI*=5dal{4gdh?0qCD9dovLL02MR< z;0^#C(OA~a)f?pMZLZ_*4)QYP@^f*fdx4C|RscYR|Nr0D|6mCWq>nu8;30~JsRhN9 zG(;2g@b>UDO11E*Fi1$b;8hel<>ZC$9p~XNrP5(}#LZPq1)Sf^Kg?;37-{0^!$fqn znSUquR#( zYk>S-h4|0RI>CYTq*l1i^E-3yo6g9TVvuo*&i4BQU87wqmTLJ8ObFO-Y??VaTKHI+ zg^c2rii1ECVXAiP$)o+{s9rn!@jPUb-!z6UookFwWGXR?r1=QwB@)7UPN(F0HCoCq}F4t95vMYzO0(9Q9c@lX}GxQ&%Q#qr=Fe0E((?)c#GaBsU{l?7KVtJ8tayS=$ zk|e2ticLa8LgF7bzuOq2e2W#TcI{YXg{$Jt4H7`(Z}wcL%fomCfARosu2^t;HunTM zdvSC9`24pW{|`3azid4*<Yuf7l=vEpHPVtF$ zM|8A6v~r1a@v}D#Ks7f%?zLd6%!i3md3VG<`mD;@V!iq_^D{HEvjG;Xr&o-b-q0D~v1O{?%#AkoZzriw& zol+sV*L#8j08jwX5&WFF|1cC^H%})kH#esre(zsKg8+Aa@c;hLzPi!|9V2;&qE4dT zN7$GbJrujLT;edoL^7=#Lqp#`kH}VXoqp;zpYZluTk@0=lwcP_Wc_1Y(-h4#%PDd~ z`bc=UWf$UbzfC$9a^SqA`78vGJO11`5w$%)s$PwoTd;aqNinCULKORhe33c zaJBoZ!X;{bbnW25Z`S`NY4AQ%im-qVQA_@{=d1FJj;SX?T^$g{8Q|W@tS|%eh^+ct z@3x=q&eW2D(s!gD%t}Jhjib8=>5g3ET!rRanK6ng71r_muZWorku$i~PJC-sa;_RC z1H+N~S%AJ(VAL=*FSe|mO+q3cJ{Qb29sy`u1}a&DNGQ7v{_#aofrZRSw58*9XJPGw z;+pZzLcl5oAySG+nwyuVk!U_hrlZtD&cN_J1o06qGjodJ$v_lR-Y|V>Q~2v}ku-HQ zdWcxuIX%u=WuLFCu+28zEX7Xll!v(`Rdf-BVYL-w!JEuNQRd!C4HJEI>WA(PWr9yM zq*nut+fAQ_+KVg5X$PV}KAOt(j@TQFp;3plN;miB%lQY=CL0F53}|22kCvwTVVyR#A~;beLXKPz=40D$b*S$WxmK;B;5KW}_LSRyU8 z-SsOSel#roJ8o=X;to*Fdg`g3q5NQ>mTp~3t)FudN)L*U(8V#evp=!G{bIBPas=8N zN&YHYvkFVaJ?SDRzh|r9Fzqi6Lcq)Qq_V9~;3zgzRvc0LQ*y+|_SF*OtcMpoh;jz1(!zr!po=ABTCb(k?nkBDP6WE^onKit>DjZ&Y`-1Z7nc>OEf1if3V6rAa#3>1HqoD#D&+S% zy*D&?0G*Yj(Cz+wLZEbU{Vq^M31mle9_<$IsO>p2=@lH}ARML7tGYTzzdP3B^?47B zj)48r2CQuKbPv4;eZljz23dl$^_95H~5QLU4c{Nel8 zyUkGrFBcBo_2$fMTtR6rJNsQP{ZU%P`hb}7^82lB^>r$CLf)YkVJ1{FFGv(qN;eqC zqx7%ws=>;jGg8O>_aDG30P_;sw^##Gl7a7*2e@qy5|?7NJ^d7We90K61t=Zd!@SqY zbsH2Dol?F9o)J$=!q4%aAye0MEYuQik;QOl@SmJC@6VIg>2sao!EYhmkmQjI1zV}8 zi~^%8+MZC)#E{5mn8h;`yn3dVMW~wsNo|E`7;jVD{W_C)x;EHsNMzo+5?|47@G1cT zClG;I13kCjinkyMuc0jeF61fcUHzs|gkTia>eM9Kr6+>yP-J&xa!j!T)%AV}YdsG7 z_4+bZwms%CmUUdyT8nyM+t@ueeGbfUb&mBn1p>13R2^_L#Uyjs2g@!x5+cQmRm^jN z9E|HtsAMv|Y6G~`qlQ$Avs9U9o#a)Nxz20l3vu$<$FB(Uyhc3rhiHPiqDJ)Ws$#q= zxV+5|h@n;=(z;&Bp}gPek`gTFtdWEkaKyd7zD%xx7z=s?h2UXEMiBMN#kt*>Y^9?O z?P-T5)+72UaDh!aao7Y3YWcwnuzP6PS)q@}>vsfaTm))h(Z$L8cB{LGwwRs}@2q1) z%7u$zb#p}v6kNcalNSwd6u<5>2?ofzXBm`mzB7MP^Z3Zjh7c=>nt`m3quhX1dSKEZ z+kQ@gK4dT@btKr&6PRd~;jaInv)%Vh36@51?e}_cGb&f(!veP_?WP4yn;o zDcp{IBVj39NaemQD_E!fgEAx;Y#+)a8jHKeN$(sE`!pTedBzD0)p?1!wJ=}fAY@8z zEOzl#nr@vk?p#;*(f(E~(S+&CYX55j;{Q7Vo&O{trk@04`jdc4{*MXhV0prBNG7c+ z6_pxzi5({SmR9orIRR5Dk#`b?8}eY?Ep%GOzS&g8 zZ}{eg7aJTEBD5|2qPD^LGLgdR#;TOBhhb-BUZ4hPGiJ)@F(gU0Ml#VtXpg9OG*f z6vO+%wDuV)sgiG==A*!_MwVCaGtCRH;J)Oa{9~cSWYq^(0TK9N6aC?7yzDJKK{ndn zo(`^dUOx^wD5+fqSsGgo7Jh^8Ik`E7B3}$WDL6%{q8%RS%8lN&*|zb%3REP~BoZgq zJ<`H&6`Mq?9tUEfef7SNxKC%jCfina)wzljZnVTpY>9dLFdpg`vZjkOX*?O4Iu*19 z#=SF9oIB9vbih%`V(cO&oJ(1v$;$A$+vVbVdLoV7GC7KKfw-gN3{(i^rfpf<;M^^% z7+%5AyUSO+lq(OD_;|mIr?ZbeBXO;kEor^&S>kivA&PzIcnQD zU)ATWM}c+VJOqn*G_^_&`Rt=>h04?sj?nF8z8%*(%}VGg;?)uJbK~5HWg{veh#bxb ziOI}8$_d-xz`=IP1e>Y2mSg;yae_hTLi z&u~V$0fLIMJ4o4Lqs5zm2^dKe)+z3sw zAhPdGC`Ox;4^h-~W-fTzlL@c_s`DP-d^^)V{C1YQ9P{ZZ?X~yi#>jprEhnelBG=Q1 zrH;(`kmL2wv_+D6AqU_0Nmu<0yKc@qSz9kJ{YCKk?CD1mxbrWMxBC*RC9bZZz07+q zVT$sn$qI5Wj91X9_t3rhqdk~e89m+;cj9Z?q2Px3U~J}LQZH1B*n%2yJ)ZdLOYO5E zndQ&=+E7PYmD*#hQ(CS7PK52Kxm0l6We@Hd_z5ROc&=ILbx~Uc8T3FCtb6NP3=wtt zu~d4GXOo4kcKNB;sgkqUiq}umk_mTqHNSm%lyn}hDxtYSBTxN6RgJHhku{kl!N&nP zMc9oBFtuN^#VfL|r7^)^ECG-K6NLs?RtbNhEyHx4VsFq@haYF9Au6gjG-Q-l> zME%~Lw-lLT3-7Zx&Vw!p=Oo||B-xgGk1l9(6uGq6L^+H6?|7NX?d~}Ub!lovQx6Ms zSV<;pqiZG}zq=O!^AM6f6gx%eWuFbsBH;rggIYY{1jDBLJIPU%OzZ36 zIb-ue{nhW?pI7DYM&GNXB%E=|84@#^@>6HCMiQ`FDFwDPMB>^> z8-I?CO=Ut?V;F&~Ppe6cD+89AH#-16lPWDniX-G&Y_^Y9b#M|tyzb8vq&%mxVvp%^ zOiJ3>YoZx?N-09lsB1Cwmb~bZ+Cs&^WOcEebi-#$y)l{G=f;Dvw(&1IIrR;5zJNcr zue@{Q$uhnpN{M`hZ}1MIH)N1vNG$6aq#k;txkj=amEiphdq1mKVl;sJ;-xJ(t-C*k z!3d8M`+VCkeggBWQT8^ayI4YM{Ps8YFQB==JKP|G<~>3UvFA@YxL8;dMl@%f1STnH zzI%)wv$*R-_p%{WtIj^KB54awt&YUG&`zDQIqS%&e84M&;pl#0x%0lbMjMTgegZe6 z5C?}pJsOZ8z{-AOgftMKiJ7KTRI3bmkI=qXt&HH~ZK}$0XX*8eS}ewCpJM^elAzL9 zvdCpdpcTJIX#16@j&we6y8E)_z3`B*EfE(N{#BB7;AVWL6{=k?uc{0_5!KFO0Wi}90#0&44ecup{5N=@KDqh3U5=Y` zAmuk{$#E~k8~GqsNgwDfWlfQC0^CkC&1w`juwCxcVwktnA}@c~^T7Yk{E#V_Yr^OsTv-`8iL)tGlFZZ5bEfflk(@Ta<$1hw&v7lNaX$JQR(kPKC zi3x}I^x;lhj22foj7=&VbIw$7H;xUS8z=&-=`5v+U}18yC32P31;y!tMRm#-3u#>p~(^tU1^{i9Ib5qZJ;(h zpp>Qr&mXpt0RWso{kONjGw7$|E>2TRfF}*nu&8UaLMUUeTD@{jOR^0P){K@CX3M?$ z?bwN!XDj0ln~z~1e87?S-`0>i0V(bW*a1B+zo>*g95ATT4KGW@XDszJb=PG+y^z2n zAv09em5$QmXt%T7w?5yOb)Ge>nSI6^11NM3Pa2wFmvIiUNtuqTdLEvxMX5~vKuzA+ zg^aUeo(UzcV=qjppLiF8{rL@^oYukgxO5drjat&ZefFKTCDXx#SIOH#Gz6`g&BQfQ zA0hvUOmU&+8`(!t>7YhFqLF9bVieTbi&&JXC{9W6f<0|6Vqe2&6)9fJ?b;$k#mZ^K zFDn0l1yH1reMH57F9L&N`|4fvGO>wG(&o}Nfhl=Fp29&6PO%uz6TE4nVd2jKCMFIX z2AfhZ7bixN9)8}tZ@*s9?_lC?!wc1d z3Ak98__FR-=lflAR@${vCQN_N!|S4)@_o^}{Hzs*{P?I^T525|-P^v=-DDOCdKhN- z_A_DRH7Xdk9de}Q^HQ!|Wg5MKmh?_gU29Fa5FbU+`~6fOYKC_Gi|+aH!}k1kqZ6yb z77Mv2ix}5eZ?BubN`N$L&_5?w9LEhttOm8(z z@^rOye&FEhygu=m(%VF5P-IwZRY>Y3bsSw&a1` zXj@i#a?r)ensj^k!t&RT_hUAFK2nXdt}ZcB8VGQ*SyAS$kF;IvZ?4hk5ZJ`f^N|Z{ zhnYSOo@mjOdR4@CrlV8h&dU>5j8>VDYu_{4C1;XDzeZk?=Rc0IgP}OORX@9NnS*eJ zqD>7B3vy@I==CaJyP5JJYcA=vm$bDylPz>0=ucdnI@lxzl{*hG#)Ux#k9}r13OOXF zRJ|vfZp=b=#e(;}Zs6(qKO;)k39?T=BqR3Um(0&H&i~hvxs>A`(cQcb1T?`8yFXsR z>sh~%3|$ni%m=tsR^Ukp!|!zFAKH?bs^&JsgB=Y+I;J(Dmr{RXRqdqD=<|&30-fiu z2DB~(*)({`M3ItRaubq9ZHEfB5;IKeih-&2AM_UKjUZH{+Vhd9+i@UjTihL#ux=GJ zca?yA@V8Vc9G2=aYlrk+UO`2u?i(SjD*gC!W<5BIEve}zx^JZ3)_md~R10e&FxxFoxvm32lt?!N+=kkc6raZ56eEeBLWx9NR02dnae*@L+SAA;8O#;jq@*S2bT%X(i! zM{~?DxI@Av{c%R-i^(7LEx}@^X({wVwJfO}&l5%591fBn7r8WNA0WNM)8CL)4rWK( zXAsA~!I=*|7-66pQ-9SbMJm9%5$Be=f8@&L7QZ>|);^J6**yvK&sxXbzjnjsPQ5&` zJQX?keYp$6$_`lxt_L8v%OZgHK5X2qH9Xziy|}I2JV8HlO?aR1-z^Wgfh4AAs>A!; zQS)k-c&hUaRY=6yE==}*gw{)mJq@KTQk|0mE*^WZ9n=AWpgqV5IOP6%>87)JdbixQJ8E7r$Ev6- z{N#3nKc$@ct@>kU=mq=0Ur6I(RlF@e+QfhPzI7Tqcfx0$Au6vZXc3$O7U4%cW7PlO~piBXxiT#=Yszl<9#dA3PlWOJupjtP{ zejgH~q2XDj_{-DOl(i(*qA3EfzP(r813PdSCq&C9|G+$_+BaY1Kzdrm@on;f(B38F z^wbi!3^1f}B|Al`fWPGxf?n7cxwndtc&P2%Hmdw&=z~<%4A#7Ga=Ih{xkz3#Czw#- z-bXPR+y0v{vQ0Cy94Mh0W5o2`$`0d?O9N?B0d6CGxh#;fmFovAUXg<3-Ww2HZ5fOT zC*2N%#R$I*AjxApGlpY+J6E|DzDF@;mS>J_(XP&D*VU~M>x?~-#{qL8V~wc+&xgCD|q>7IC+FWtwbE-sgW#xJx=U`oV=d1VeIHzqSeHsdiFx9bk zz}p=*@ptOIo3gy5Pxi1%ZhN*VqX|F7g~>F)k-ZiSos zpBFe)I%$jtKMJOF8S~+!a?B@6W7RLpXqZNdXxenB=Q(gvv>v2hlwtm5VTD+%1hJeMp0zBd;~#?3DV4f34`%XaE?s$tXi;C3Ww=XTj2NA@DP)2s7Xp7owIZ!?&S(T+n z37~vbm_iPpN8U$wB%9WIo>jczF%h9an_v?%@`a@0^c5ktF!7cyu%F%%$7Oj@YbKee zpH||1F$o}bVVoyElMglskJ&RbQSX&Lk!?el=^^rP8$Y$+(l zR_3Jt-PEAhw+H4c=aE}@DRr=LPrI`nC0U9Lg^2f#OSK-{n|HUbq7SzyN?&}byC`>52BT`u=0e&LV%B$I;;VPyHZe82uP>>lMNoy#D$JRU;sB!i&(q zpAP)j;r;9Wn^{2()xQJ$eH`gu3xC{);TH0j;iTIO|30Dd*M-OMdhvfguW=jacFX-2 zk_*N^8t}Il-|hkbT1*a4%l_=%|Dz*(8|8L?@fQjbyj<`bl%J{EZIs*XpkFB2@KJ)_ zp!{qO-A1|HYxso{LGTmhADxHW2)9f2zYszQe){Fvm%(3CnEyHnz72glZ~O&4O!eP_{*^`EhQ6J6{eu2R{Tt}N?%}tZ@b>`z z7a9QY9o|X&M>v1`b#4b>zW_YoX(3#Qe+$QMuf84H{93Kc_`liAPYK<|`@6&Zg$5tI eVE)Ty{&b%jswi;l|B<&401DvcHY&Cs-~IzWbyAxE literal 0 HcmV?d00001