From a08c8eb1aecea4a7d82fc70eb2aa4f886a6ed632 Mon Sep 17 00:00:00 2001 From: Ri Xu Date: Thu, 22 Dec 2016 10:10:40 +0800 Subject: [PATCH] - Fix issue comments missing after save; - Update import PKG syntax in struct; - Update test XLSX file (include table, charts, functions, comments and hyperlink on Sheet1) --- sheet.go | 1 + test/Workbook1.xlsx | Bin 21643 -> 22867 bytes xmlContentTypes.go | 4 +--- xmlSharedStrings.go | 4 +--- xmlWorkbook.go | 4 +--- xmlWorksheet.go | 14 ++++++++++++++ 6 files changed, 18 insertions(+), 9 deletions(-) diff --git a/sheet.go b/sheet.go index 088a6512..35fd5ed0 100644 --- a/sheet.go +++ b/sheet.go @@ -127,6 +127,7 @@ func replaceRelationshipsID(workbookMarshal string) string { rids = strings.Replace(rids, ``, ``, -1) rids = strings.Replace(rids, ``, ``, -1) rids = strings.Replace(rids, ``, ``, -1) + rids = strings.Replace(rids, ``, ``, -1) return strings.Replace(rids, `WobOX<3i4KaUP9vm0MiYH{qd2 zl4Nt>G^9@FKE3YKecCua(l@kG4A=rkXp6_EA8U)Y&^M!Fh^!h1)0CwrJV#9&SXCWA zCE3+h!L0IrxKhey);pE@zOll`%|4~v`!q<%KUN1Mk$c4TRf=vlAQP8Tx%1#dh|f8h zPH#Wi=Z9NtBG+GpBh1D@T@9oDt*VC2rHZqC`3U4>CRvC0&+3na9_O4xU($B`n zQg(XG8T5HvC>2wNm&ygqR~;#G;o{ZxZFcAJEbOQ-=|5MK0KS)(ULR zjN8q)%!DXC++&O1$G|{^nXC27G{tjUBnG!{CQ_b&$3P^FMqy$a+8!rWdE!OQ|-U&vJGLw>-LfJ5T- zU-xJn=4v(&U!I~tqK?7{W1yj;yVg$>Ohy>clKmaLX$ zH>H9=_oWd*k3os3ldv`7eCTVZ2=L3(Ev;$igMMv)EHN4#(IskhV)u?|G^rZxL=%-6 zR_(JuHKQWY05sC^huzXV{^~zXL^IQ4|XCa5TJ5cec5XgeHc6 z_g+;Up+ET2xF-DD(6b7O5Q_(-w|0iSd_ac?5KTS@LY;09((vFB7&2tt$%YZU7t$6q z?ae%ECr%&dVnx3;Q-DssR%>n|FV%c~Fsn_)^kxB`md zd!yZH122_a60#Fp!93pjxr5`b)SX-~5!DKn%s9bzp2#MTkI$2A4K<_MEggjTU462} zoYTAUi^QW!mdIl)61&)9lL)>invs+0<~>{~+SuO1E3M}@y6B;3+YdIe9_}bf3}$cQ zR@QoK56kz|1>;LRhM~|-|D!_$rz#oJ=r4tdw`={s935&>N@fS!*Rj% zhMtJhdm3=M^D?p-%uRcvFZhzE+Zls8sMu-O)5sIHp`7tSddRh&~sy=BdCD zMDR7`&n6~*_K#p>Hv5z~g^cGe`pn)<78U3l?0)JN#F3Rm@T~(6+2+P$E!iyt^A9;> zY7C0f-*%z3WaFiJ_=92{CHpu7heAQZ8hVG;tuw)TVX@Q^hA`e~jTUy3tuUV&EZFnl zIUuk^WSNy}*25ehs1@qP$Rnh$W;9(xs`LmbG6*r7B=^A#NJ{F&9~)yMtQICxd89hx zsV!p~I#V<{NL0J(Iat<+5iby&V7=WmP5NH$%OHBgi_*d_#UYBr!*l*zc(LH5@k;-o zK!Ug#Er&gp0zY0G@^(!wxl*$)#5o}Yd)xR7vUJR@L%9HBvk32TMtDlWnO5|eMWOTlve8AbglSWHe;a0P*2Hoj&2-6i|*bB*P(Xv>t7r-Nah z4sd*iA~QN1^l;=vv=#@gO4a7Ahq;>xAAc=+YPzMhJ6u#e=ROYa0rz>Ec|oqltc_|# znb)*WA8C3U4Q5>h5i&E?(pqJ!CFH_FP>%;u>-c)i!%(gKq+IH>;ShY_#LesTECf8` z1U8R73;S{ea`b`FoQ~*JySuc2RL>kg!*eqZV^n_5&Q^@`@po?NZT@gYe*N%kF~;tw zL&8Vu_Q)OIBRNxyKu#O9xLKj)eJScd5 zbW}Xvjq)1Z?}>_0oFeqKnqr`Vq($_2hU{{O$W4Fe0FJlT%@tKAr&}0c7(<1kRI#3Rp$R5#T=@ z!(pIE_j*2fUAM5$J6=)M?453@fj9%^?6V2fQbYmRu06S&H+H#J=C_$Sc^(q6@$}Ku zi?iLj@9;?CyTMPyCDWQ^C6OMql4{IdzqX$yky2&d*3%rK%~X2R|Me(dV-E#B_QL<8 zk@AnzzWuKRtuZ{h-*HWIghbLv2;p8(B}U}HcrYd@K`c$D3dmg5OJHwACBab;Fh3ff zSNA!D$b`WwtCs>t zN{drq;WF_XV7`Cz7CT`>hWvV_A~n^ESi%iV?AyyN^lGD-`eCz5t@!h} zaat%V=HALB%(I3Mesw@Jo6-`s0W%=07(3=sU6){r>*B2P3}YU?^IkNJTVDA70PGZZ z_1z}$rhAi&PU?lgLAOa>lD*LdnrYgVJm;vcE%n7itK*reWs55&EOdIl+2Rn#TJ1Ui zp*CDB8&)n$MaIYK%xQtN6NPVPEN2*Vzsu|Bl!?r{iQFWDYST^%*Rsx{vLqRKpS@wN z2ziRpoD!lX*NZ_-tQF+DOd6T@|G4kVLmpVv)+;$|4~P3&Qk_Hd6s578MK=A?3a2 z3v07N9xp&tNhaAzkqV4qn#KBpxL!B4-a0mtwx)Kz5h|OUu?vadGk4F|V*Y)3!Q^V$ zdSC5LQ8bxhc}73(=-#Gq#Ef@nA?LJ6lGjg+M1ED@y=zr%d>6Em;a+V%S6qtWZo5Kt&wFChGC$Inj z(Vc0{oQ>U|+grM@y4l%E++DM?K(C`T`t4`gFk108g)z1%@Q`&^2t_&*K9F@xL~BLyt@E)?u9$%{N8u*wl1g%)e?b6da;d zCFhw*qt%i0tdkjk3YH2qogfxA5(6*jsy0RxyC%*64<}RH*fa>#)PiEjNk@2k~o*8&AHQzR;jije&P?k<`ihvK-*d>MLxb z!feP>vI6b}+gIGK3HhUhb1&A}g}92NFOTCvM`E^7wQ#z&4Sl;7%_Gl_*vk8n2onaB zI#FOpFAoDi+H>*F&1_S=&2ohqg`TH_j(T3(u1|GgUQYE1Y#^J9Do4tO+O~4M(peSF zBGRfp=xzfJ4O~1jWF5*5vV;XYouaypqjjj%EVqVAb`8X9cy~lrn%T`D;(P2o7NG64 zW|{mL+-mx!up(%opNQzkMMrtyd8Oyl=KCLNZIr0>Rq(!@xIgh396sn~rVrMC-C{nn z)J~X2DVDJ`@#Dkt17TXAe;o8T@6MJo291X1VwW2)jYm#cTy))uYYA;te%S7IpxtE zM!E-5c-_19Q6{qLv=Q=7o5fl+hAAE`aa{(G$d2}!7w@uHL|Ltb-mZ$zThphS_@c-P zgWk}hX)jX4=@UOp239_;duHI(Cd!;J-d2Tq*BNffiK4HLMH2tFPsy3@WAwnljnVfi zS(BT2?#;5aV1s7-xGk|B1wgjAoLweUwR|5-@(&_f8JhK2 zhlPp|?|sQDlXu6anC|jvTwkraV)(R%Sx?bdbVTW|ukt9HU^D~!eJzSll(5KJ z%Z0kA(4f!x)z3kViulEK5Lua}`?K%Mq2Nef&AKTz<^{~QHw zBLDsjLC6P3KuH*`v=h)Zxmuf^tN%cxJsD2!@asj?(?<3$g%8?a(u683i@6-s8IJ{+ z#g?;X-=swOE(aW&oDKA+9UZ?`xVcaupQWJyt2s@w3fPwAa8I;P2fOF$FHVHFZqV{c zCA}AnrOm-6AjalT=#a!?2TLZPWKZ?zhZ&rf+J;qqF)ciO@@Z-!xOe!S+Eil|JDNOg zum-7l;gj(M48AE#2LZAJSIh@CpFkh%*GxtBA6QQ+wc?L`I-AHLSUxKJwL}ZP9f43T_ZGG zN6`k&b<};g)b-Ss=6ea&bxKCE%9Zvk)ce%s*O~h9GRstZ=f?mFJ0|<_c8#TU1v;cy z7{`9`&D?7p&%m$=`)5>hp@it;(*9#-So;A!BzQzWQ?s!U|=TV(oH+_PU zhq>O+SfR<(2ieEQxjXvVIT0M;zzM@6d$D9TY$)-{sb8c%BbdrA>0(Bdm0{goKM}8ymfni$hgKQ z5-qnD;VB^3qUH&|emtyGzA!g2mcZ$TOzCENMg1fi_Rx-1xw-fGNPsqM?2@PqFLL>b!aI*Z%LUa@Y^sX7n$>rY*uz(%;LRceT3qIH3tK9XC$ zGqkJn32$<-5fOl&)WuG%kUn}A$>4W|aV0-mBq5Vum(w4Rqp_#4?jM~6$#RZ%@4Kq3KFM0tqrt)!NNq); z1}lan*1WQd3cLC;W)BK6>&vrZs>pY}%QX3k0+zmbUs8V(J#*5__1&XTb+M^eR%1jN z7OMZuA>zMqQ3BqH7_iRP);2W6ll9cmQ;bP%jHO+Tz2uLp%rMPKP1WD{^!+e|BhC!7 zs??@IQ`cU^I?ot?Q0eyLv(N-3!S&Dg>#VS#8ZlRD+o_f<}&5wE!-?Vc)X#W-`#PegHF zGh*h|&%O%NUfSRfd?n!kPnj3c=_aJhbVI+9UXQZLcFo6 zQ(j2L&Po$UwPe9_!YMYgH0cO`_lDy1LET}Pp8+N#81XF;yY=|G6__OHMHt?qFZn~J19EYpc{i>f9db~ABmPFoIF~3=! z*;GH^iQO}$g?WWHpdQ2c>eN_$$syVk5!JCe#czO?i)UlrPLH5!s8u}7u{*B=-U&|a zTA2)%3OvtpIGUtKn4;f5*APvvRjLu~CRM%7U0St~DaVK*C~%$irK1#mw83Q@RTari zts_J0rHZ&_@0VI4*qF#FhI)z6!}Gd<9>qp71^%%dnY}I1HLQM(N7^lk?t?rv_|k$= zft&TVKT_Z$^^33xMlz2#IbOvSSoj`KHE1vNPJsK*%T9OL_{i)`=gK)X_a6yPjatTS zJhXoEibctQh?o!^jbbW1HQn~J2U7xWf?rR!uOecG@O5Y2V2zbY%~n-N%2+hnZaWBL zM0g0@M)YzUOdhbhACD|g=r)IT=}>=kx$P#9wpI@hhPh9E?uwrd^T=IhAQ%9Mf~M*J zWIZlc#?Izu>aNbWdHQVy^kQsSxq}TGe!n^VMtnTz@g@%zdqWg}A$FgUfLL&{w1Q^d z#%?j}>WpX9YG-MBxPI@XHE(OPT6K-81VYF`ct$A)o6r>RIJoI|HshVwMe#C%5%p27 z6L-nWw;=s?sz&cBh(}j z*|&NhUeWygg1aWoSnxi!Q0XiE*T{Yb^W?&UQ@wDhth4sCV6$$d4lN2Rq&Rurg&8D~xYaSPZ&qWU2HA8hZCy^|{ ziyA)QTRbDVoIc!lY%g*T$$u0Wb9HL4>788oh_VI$qMRjOYw;{WN>E(GQSdNH=i=pR zp>n7kE4@&ramf?^CF`}}8WwobtT6%$ncZ+qm*oBsGnpXzNRii=xe6&%QbBYmXE31% zXCxi|`Lq6PRID53j5sA=iBttdYOm*&J~8=0*#bEva6Mg+JQ^ zJ|jO&&-2hXC+-50N4;!Z()E0s?DFK$8(=2_pY*I{IXop0t|X^N{Kc+51yV-eS>OR1 zj)sgf4D*A`7fxLjk$hqa3e=Sg#Oz{8pZ3(ErupL^(hYmTh*wMDf)|ueuV)L%422hc ze85NRoez3kL-RVCI(A&^sS>(f*Jx#}z&BB^_fc3Kc@8g$5?_#5Zo}Px2K})8G36X) zb5;dfR&!8YN%Np8!`uh zPEc5a3}>cJLuo>*arU~M>KEenq15Y}Zpf(`21k7Fv%t;zx z*(y0W#6=IpvtSuBmXuf~V5cuPS!tv#D9AXYW`CthvvB&%d^m)ZBdtB66IApz>)I0T z>s47vxZI&#zrL*;~B-AVDvn<(I3miLJQ{ z>)-xVZ_MqD2wkd~hyMQ)u>QI47yMeXF^?Tm`n8`V(-KtczRmR#shH{swxk#ctwzva zmM4n(Mq&Y#+976KH0r!ZWTu%oF%lNGX<%xG#QA(K2|b29?Df0X z2WT$%u}121i{>S5C=r`(3F05;O7ruICEr;s3%DNSAG9+>oASzRgNjpiCF-OKWUJz} zp2Lex9WWsj+Rn9+CH1_WoFL$C88-Sr^U|*AnQ$Q^#?DiMAN##v{ckbsULeT=uhV>< zSIcrtk@S0$X$$NPZFm5sj|Pz;4>=Wtn&zo+8|%HtW!b1Wc*xhCKPoeKf;T~n-EcjeGW-~9#I$O zs482mrEV+_4&_%%Fu;9(vbTz_2;IlD_n2U^UC_%TBnxeL88esq4zLOp) zy|5{7%*p_qCH;NmW%s3f60IrOX^$W*AWJ`hVecDXPqgMURd-|SvgI|Sk{nVs@2;}C z^u)52ImU2V>~$U0>`{NVdWUwlmqA88b~?EYr!Zmb@m^Vb464l!6)WpM&|8zG@|#J0 z22|pyo%fPr!$l0aOWQHc%g4_5dVIJTtGZg-Qx}#G9}s=$)5cqy3)+wf8Igk>Na(ukOyLaDAc+rlKIFz+ z2Z5d9!Bqx=ek&8*<+ZFV0yf`ag&W)7vZKy;XUn?;Rw^R|w1bI{($``$e(V?|w1KJ% z4~`b3S)yORbiZ&#O3V1}(1ggOf-4DASRMal*9p~iag$Y_I5%r?R+N>Z&IK4S{~BXe z_!+I`RR5P392&$Q*%$~0MeC10h|q&1EVyh+;K0IKj%rx}v<}y_8<*VvEI6CJW_3ej zU#QSmPdJdr1v5gmo%j*QKYKw8hN{d`6u?6DY}d^Xq&NkMZeRf^nW&Ea=rwVEg`08Z zHdzU=vO)x0ho{t2uc*>&-vm?5(kye#N*JfpQVotX_mAOFJeSI7C_c5*z%f^Od64nd zm5Tc9%*9xhbv;^LJgNRvfTfg2&BGXe-1mTc*Z&nFAP2(qzxIzwL|D;oXY3XJ2W2*B z7(jxB=!!6aA&YXIZ1~-KaEsY%3ubTlB_?+*kYHNlE&xvtYok79#^+TZZC&S;)Ks9c zdY!EkJ0E_ecv?o33!yyEN*|Juv!nttrfbyo^=*7V`5sP1;mp|RhRfj`C^GqOHfBqPyTP2{mpJ|)4A@`vte8xWtFWN{t_i+Yzb)D_?CCEgI&b;dL4?j64njMbu&IE-4 zBQh9b7_|c}X9UZiB_q;XUGMO>67Z>MJWF?$ z2SNpq_8xK_IiEl!kDX& zMdV-qq#l1p*kq31c;+}=l>nmAV&YD&pmxgg5IJj0j9RRIen84UG;i`H9q}DeUa~xO zX90D-MC51<$K*j{M_DEWndNkj-9xcF-*Ix5<2csd^7zHDIFDIhf@Me-+Da}K{Ce^N zP3I_;BE7Naq`?if@ovl~s(tVU3U(L(?o)XD`^oK;rBVHOl<1YcO3@b)LWf9g2T}TU zw#~NbD|0iF!38q2g+7vUSH@F@qFOIRTt}J-U9XirmOQ`ir1B1;sz zB!|6oR#pL9SRo8QyY!Yst9LHc=tQX4DW$!8Gd+H6rUF^_b;kksPj3E$T^`1whG_*Q z$ZV=qM1|`}J0A0^X41!#aLU2@sTg=a5q8Va>#kp%vGZP~9{zFGidiwS`kVMF2<`7f zSCBa=PViO)k?gVF7!bbY=h@L8s3H#p3IBS}|IaMp0f6eCgyDAE<_a1J44utwU09I- z9-*At=+3yOn+v7)KP*uF4p7`)z1^uB4 zp}|4AWoXInJKp1O0s!FlkPWgd5kL6Bul(sxL*T+3(%c&O9&M!V4D)CA+mk0y?SNSj zA6a~fYs8yhLvfG)(;jyc|9g@LY7@f0B<_6xX?;KpIhMr+-;>x<+?N6uX8={ zQ0+)>GuivO><<+)03xfv_+R2J1t#Dwq+Eds&8PlOlskk#8$c)okni|-5Eeyjw0kq$ zAw)%y3B*VU@l#|#(|LZ^?+zh#(3Ti7h!Ytu4rjT|8Lb6u%J3qL`-(+`A#H>UFLZ^nvDG}2Ct<4zl&hmdg|E^0UvPrpB{<;_@Db!_X3hbr_Dn~h?L4B z34a3l`CC`NC%VVq(%fl!xAt?t^m9+-4<$O`gp{Z-NZ*_29{)@5duamzK>ce1YjFQk z(#6#iTEIb^WbnbgY>MTGw^E28~7BDZ05Kzijv4f3w}G{5yXK04V>J_I3i&i9^Y# zA-?J;@p1@)_x2fLT&9#!Pwpf6qkfEM~E0WF~~ewpk40LgB) Aw*UYD delta 10654 zcmaiaWk6iX()Qr)?(T!Ty9al7cXtK|9(-^DL4vyzBv>H0ySpU8lHeqKB-!lV-TmHs z`9U$$)N{I@s_N=f)w2x{FUlc6s)|t1*Z=?k9w3&VDsQnD&0Y)v0BFJk09a4o8c4c0 zds;brnrQmDT6q|;_&PZbqz^0iv!O?x$#qKZG1(jPk%zCioAN_qo&yH+cuF?**o`*w zVrD7J^s`woGx&zb9zmQ~vhruv)=KQ5(JLJyf~*}?0J^Rj=Q$gfS`b<;leQ_QGQuv& z*Ja|Qb!24~|JpAA-J}(>S6U1a4ijqHrZDLuAw@$|vP_spgBWNM2?Ovq(yal*#Xbmz zA6~CKNAdSz!+u4JbIsYluK5|m^j+*KZL)6oLJQ9j#9M92A)FZaURwst2!3haBTD=S zNj^9G;-ZPdoRn04I3^Iuxudvmp_@!~zArAjFruP&p!Ln%`-_h2-IN*cqT6j%MOEWq z{ghOEO85vIv4)Z{2fGMw<{N$jKjVo+!=cv41TVt}4U(8EMy~h$vdK;@0QPZ|t=_WD zb)J&dp|t3HWA)dqcSkS}=NsBlvF7@v%qpm_?)z+!bhJHV{P?Z=T1?o=uN{{Xj6_Sd z@5fmD;sX|%CFNWK-wEUEwIM~PQ+2l7Pu8Q{Pw}7j+VaYNc;vrR^`LADalH9D_dz)t zJ6;~Dg)-&xv?r|;_R>cqRKNe=_Lb>5%x}X200il&jR=t35Kuq<5QkcYfW}Fw-vpDx zkbvS-j1>FXup`f49wmo^GMY4&C00X6YKRfN={F+wJdt?FsHdGDH(FNPw`qL|HV%dO z4_zCUW#*@O`B>v8)Ho>VA;;sB{L_l8_!H^qKZn}&+80sC8l2l|8=6?HsXG&Q@>%r4 zAc)v2t!OxVG@>-GN0{u>eDiGQE*X^5q#GIVOM+ygYZk)Vxa2zb@51zr*u=EI6Hz#!$Pf;Wb-hib9rHtD@#ZCBG z#M|df0nDr43Q~vOq)OB{-2wXa4QN}an^wuXgQO*h;KGi3_o%JkO$63;=!4L@Zr;h| z`XI&v;X-S!N<6B=u1`kCso>2|;!e9HVW=>xDnC}vGhJoRqA#-~$uT5g>mHm_)6C<- zDP^G@&8Y0|=JO9PjpTm>r3;}3m7_EF?OPZXZP*vUWqaE4diDp2URo5>?okh#*xHju(* zB62!J`59wxlJX768c)L*zvLkzneNc!8{jWuo(Pc#qry}F^gwQSeR$MJgsM9pH~_$x z6ac^mfJ0SqK__~89sjJ?Qz8e6SnX2FlN@hUGYv%x=!A zP|4odwnY`8B{b=u)p&OsRnH6h=rFi#Sg>HqL^->z`j9-6#HI0M_cRd_b^2-~D~`v~vNk0Ql8T%nO$xn9c;WtrA@qF`3z zA=)t33)h};D+!4~$njx*PBCpP=y9oF_A54a>SLg^Oz874t>w(9ns0CICwPx5=}(R& zUw3gqGg^EFgfi^&WQL{`+Us@uMBEfXBMgjR2o0Q!Q58YD&KpMm5>B_cCW_TD@NO<-42l@&P7=2m6pIG^&ye87$N@m z_B0c`(`-E!eer_(j8j6?DrAjAQ|%;V?|joA zxDrs_XeD)JV`nXKVd+v8uMCxFGfiWPxY}%77V_7&-ESx9Ix`6*eD1FlV8VeL@!5y1uqZnuPWpMmr zT9NMVa`Fb;WwNr&t+%L`9X zs#Z;>!k&AJ6oGd3*TN8FPAEDH35T^vB1Fldn;syAo&?Lef!Eml(Rd0A*xcp$l`}Qt zz84m@Y4=22&!&ZpG@c^%c1mC-MJOnm#w-4LXnLoWsYfYA*Y}K1=l0VSNjU;`0!|iS zDhVl9OS3~QHIcH{6$qmcmyK4Q+hg*eiB|>i;n!iP(FvFk`xpr-oZH;h(ZI6u1R~o8 z)Nhy~xml@|7uM8V1-K-L_wbE%nEpaZEJ}ZPt%dP0~75Z{z9Zo-!CS*8WqPWZVxMUhk1kGK=9Zmvr?i-T6Fl( zBg|$v>OUpl5s5 z2#=Y>VvqAFM{IQkW#!Z?e}0otXMxPc0hE^z^NqQ}TB4UB zvj3)<8+5vbyNkg3``IQTjc3~drer#!?&EnPeqD*BPJS{J2lu`L>4)3HyFnn}y2RM0 z0Y@^G+O1)ZhQ)(mvoA*%p9aA9_e-$pC*_9b!LD#Nl8B*dqFgGil!9u>x!B3ghE|s2 zQAe55H#Z`YXa-Ut)rF*_LG+ic-zou9r-7m6e$lTX0l9$88VNC`Bfu;UI()XUX*(qJ zx8C49+#)xq5^T3W9H1-xV`Sryg0IElp$pjbkMk5{Ss zb7;S^>)X9?h)cc$RD0WErzU4I#iDN6G3GK(M%E~a9+l{#et#YtoKOVfKxObBz4<~d z1VV0=R!BYW8l%i?0I5NCCBPuk^?S5@NiP<_r(g(tJbW3~dkU_9q*57N&-E+%__3R8 zvEVVpAb)dS>ybG_Y&+SWc)+$f_hR3C8oNTVkT=udymDE;n#zL%(v~S3)lMGf3?9f^ zfoYZKK?yz%fLw0Yo~i(iKx*QDVvrZDe3zs@&^8H!kh=Rmdke&V zrxTlOPget!@jr$hMT&F!JUK4qP@lFZn?GG?5|wi?DkW6B=U$E5H*f3>nInux<-p2i zqs7Fl#+(yIH&+_JVza_jbjk=E!^?LT&Ic)mu8iGDx=-E9Oj$`0*G$;xN)Q4)DGWa- zhH4CMRm=re7r;cex5|}G-3E2Q)zJ6@T4SzsaFGtYxECGa#kzXK`35zR`J% zy11}uJi*&Tg86ym0~6EG{mi#AG{{g-Us1hE1z$5#gYZ*Q<(+)I6daHM08!*0+4m_6 zJF+@iS=yPg+BuooSh2I%yIR?#Y5VAE=wNs2p=&FSz)D*(MeseHfukWQO_zpB=ouAT zv@uImF;tVNVU`0B)v)z2p^K4W(#k`gVYMJHLmneFw|r|nyg$9)5War7Dg1FG0RM~t zY6}|_(w_-!gGx(*F~*7*BSo&K3IujMPeVaL(ZcM4wW zcI&p245UDI%=kY3o_GV4GL6QEF$Us;wGDHU2Lv~f@}E+U9O{wUYMV?k-ePkOeK+Zx zzAV0nO~xffU0=$gS)7R`isGPf?$`lL?<%x}>5VM+UqLC~kc8$GN|>d;pB=A;tT!${ac<$S0^k~>V<7&*5AID2Vc_mF@RB`W%+bDU|#jY^p*(V`jJ#m4ck{V=-J1U1&eX5O4PD?8ItoL-T16DokC8 zbk~pwsqEz7gn(myB#n2V1C#x6`!IKLLngtQW|RALeE zu1~4%jiYNQU5=iqK){0*gdGb=Teyx1Q09Cj+9tfo99(8;1QOJ93bIZ+- z_nLb9j3l}6^Zi>Ax;f5hP!$h7;Nw^d2lf&}s;jyAvnkK)flFQ+8ZWO0#OL%_NHu zenDuS?O)XbLxjXXSD!{?@=cQh2XyN(^C$(3wLqig^hgou>#4}1pgyD+kB+#YF5PpB z?p@A{IiMcO$C5DVOjEDQ8pB~AnX%CX^_QXc=};E!q8D$bi97=1y}uIC+WxQwov7JVa~4 zDX8^&&VF!TeoRke23^VjhNeU!ZPT-()?9Y0%Mf=pG}41EWtw?VtWC5z+|nyo)R^vk zF^QsLcTK+WEr^fGQ0)2G82O@yE<-upP*YpCpkjqwBqPOchu#ipCgH& zemh(G>BHK-)Y&(JwfN%M1>#jN3iEmj;V3DAk9ZcIxL;2KJ~1+r(zFapdWAL^p;G{v z7WjEbyk3Kbtb~+tP*IUw@k}{4CtiFpa);lI>I~SXJtVT7B5iT$DgDk3^)5fkex0dC z8xKhFlH;*KzO21(xuRil&TJuegC*IQ^@3C_c#A{XTauV0jR8B^pIt@Hjfo%Kh-^7E z+u$ps?H2&lCn7-*u^lq>@CNmasp+yq%(o;Yy}baCJDMSPt=Z*sPL;;CQf0bQh5aby zD|)|n?&xC%u)5Y`6_xYR$~sg9bvWwz*hVk)Hdd!74b!I5YN+X^XT;6&1*y zdN&)8Gg(B!+GTvuq?SKw$8xOfKwkZN_=inzR`kORztXc}4`t>){GGNJpBAH4uAbiV z-^Tgbn%(HntBj9(FOgZG6lBpcSH3T+*qbJ*f3r+|NEd_WMlv`o+{tyv60h{HeV-pV>#HTx=~P($i~Oy%%9 zLF}jIG;>EH*k7z9HCASvkwy)n$8`rMR0~ia7YRqD@~0bu{Ix@^z(5d0itQ#Z60m6I`Xcy`>F#gM06@l-Lbr` z3>;jM@O;LE&gQj>Vb(e;t$nteW(&8`Kpa(~XAJKMd`I>)b`fuO!B(m25f3H^MQ@X?~G1qG3fxoy;$rl7BN0o@+u2lco1lHHm_=D>PT zMUI846!mf|w_k%y;)Fjf;T6NpE(rhBVeG!P#leHAQH58tRt04#Q2Z-|udt6AQNS#r zNMGEy%Lpjg?oq!Q``eBUf5WOKh7x4m*cbA4iLq#4Mq{538HaqM191ZvjPU9?lt|~O zqmv56IlMflL5xMHB}=tkuT+Jntz)m_JR!Hr)Xv(fhp5@TUo-JcKUUL2Nr9A)){U0} zU*@u5oW`Wx)-|TC0|ur~8{usRh@yyRZr;CLQP4J1 z#_$hWlhv^#5Hs<=8R&o2z5~2!-yElJB8EtU>LhV{SyYL2$59Q;?KR$C&87H|1CW`=6-#$R^%{5`W4Q%(SxZqy1`3x;XTrNUbcZER1Ki&! zBNKuTA%+3~+7Q5w+@#1=YpwFL-VPNlSWbB0bZ&A`uH|@BJWgzr@tnx}!@y0SPrKAb zMcg(=DfCLk_yM`zTNIR-S?bA&UA%{G4qFsXb#m5b{V+s0%bBAJQwaC~TV ziNvmA_JOHuuLf%3k1fFHkhEuv2`HJ2*Ioti%FRkUV`$H}dJZ!YYo+i%TjHT7%nwx9 z(xl*lmZo5=<{XLBqkK7ph9fk6d&NGq&-Tm5JH>aLzob>L&&uNIx#bwOl{l@4dl-Uy zJxmYovrQdJW3#A5n!@$;rPve1SfyF&VYKI%(K*88JP*$kC7?->k3g=&bk$4jd6|mA zId&wW_Hm4@)KR0|C=W;fy&Gb&Ua1Sg={a;F=;GnwVt?_vcJY;{G3eftRj=Wl0+zND(?2~*7*^1P%97xGpZzY*HOV}Bl@eFS+ zP{a92A$v+cbunKCB&VXP_1c8gRd5(bWB9#SB`Xk#V{WFo&>Q;_Hg_U_^8~ff6kY0l z^;Ap?KF#fhD(X9&I#x`vIfFV@%^3Ghk&S0uJ(zg)idH8u$YSr zbZdT)S5BuDVP#xAm@T z*;6F3h#c9PjF1c^AdtiL6R8q_V-C4cQ_qq4``9hxCCcuc2#cWeqZrS_qV&zGO3kp# z@3{C`8IXV4Pk#I~QVQU}g68s4McTk<=^0ihwEG)Ke9lG}hIu0|CnEVm+}{3SV>Zyw|Wa$ko1b%;iJ5Jyf^ zs%#?9NC3~tRJ;~z<1wX^-jYX4`K>%1SbNFV9RsFn*It69 zP}W_n7B}88owDYNp1lq6pw|x7)IQ{!;zfj#Qtu;DM4>^Uadchf+mE37w2S9hd(zt! zB0lE+e&@&Hv0Z{I3zBofBkf!PzK~D~+ZaOEe5L$7L1KvwUvcn76_nqoNSrdFJ?2^ZvCtWYt5;Qay^w;=jcu=$bmZ!Jods_{)t9?A53iq#7q@=0!jH0j zNaE;MGj|DgZGZfrrRGP-DMP0$uxUKAyu{I^_XuR9y1K{?hMfbEI<^p!jR^Hq{u-UtIn%z$lq{OREX+i>U|uL-%Bs%JA``Cr+WvaTM6J&X5~@S zjlT^}-KCc4h!V+qJ>-GPI>C|`m%wA1+h;woGn^_tB?r`M%x-)i^|8?dm!CCT-PX}` z!h35;I?rjk#t3DLs={UM<@`n~!=dtmX?Tt)5=xh*ZT$J(3XTt`8b<9(TIP$Tz_+n@ zRg_h#*H_&5x>^c-kXAPN7Xj!<`o8LC_Vevf*~zt`oP9MNSI-LV5DHcGZ;jAKD5+*w zwVrEZXSWB(iX!^;piU_I7QL2^N_&OAM*h`ml2c?iJk_SS5VdcL3TghO(I9ZgZ^7of zdYu=Q;O9c!FxcY)&`VB*hZnZ#>dczrs|WMP2F#49D}cb|cbLc$J)~4GIS<&V);iqIV&iRd{Tu z+k!>&@dUtBF}iH=E;K;5Ww|P1dTGX-H@n%zbpdAQsAUJsrk0vrauF5eC1ry1O1m&RfK>P z{aI%IRhM>BAObEt1+0m?m7@nMB7poyE&@P2m31d!Ws7T`5Pr*FNZ=*~AmZJh3Sco^ z0I7^XE=>LZLb?*LgS3=_H=>bm+U;wCp zP8I+Nd6Gxa;0HxI(Ekkp06g6Y_?>NkDnk7Ufd2GZ5B6uO{Z9()T4kqyQ1Dy+2LA_% z{{af7(?&P+|Aq8#O3?@9e^UBe{u}StD*wEy@N`@z{Bx2&R#^Z>Rbv02gc~aniI4o~ z=R2}m*qXU}{@t*8iwZwy@mv0T7QbAhU5NLVuhzip` zA4{$ZglGgGr~v;z1CTTLU}e>RsYIy)AukBP&8m$5)H!(q(*hH!G5uGc`f-`!r!)QW z3;9oT{qU(os-H%%bT{*{bGG@r8Op!^;`F!t&Bb3F{Bb@c`VV}}zrnwu0*kAYgWssr{BwDqo<)*4H7X!$E)cb7sHg|D}@qq=GI6CfCIUPw5~_9rylP(4X>; z9P-zb-~oR>>^(I!|D^SYktKeBu}j556+Zm;B=nC{5j5Z_@%-o7BgDb%vN+%hT@0xe z{p{=i1@`v@`A@J7$tN&EFo7O2i@auf1w73Ek4%`S&HKl4r~r*906?G2k5B&(h-cDn diff --git a/xmlContentTypes.go b/xmlContentTypes.go index b56c1257..65e85bc2 100644 --- a/xmlContentTypes.go +++ b/xmlContentTypes.go @@ -2,9 +2,7 @@ package excelize -import ( - "encoding/xml" -) +import "encoding/xml" type xlsxTypes struct { XMLName xml.Name `xml:"http://schemas.openxmlformats.org/package/2006/content-types Types"` diff --git a/xmlSharedStrings.go b/xmlSharedStrings.go index 467f19cd..059ed60a 100644 --- a/xmlSharedStrings.go +++ b/xmlSharedStrings.go @@ -2,9 +2,7 @@ package excelize -import ( - "encoding/xml" -) +import "encoding/xml" // xlsxSST directly maps the sst element from the namespace // http://schemas.openxmlformats.org/spreadsheetml/2006/main currently diff --git a/xmlWorkbook.go b/xmlWorkbook.go index a82052f1..1f355c72 100644 --- a/xmlWorkbook.go +++ b/xmlWorkbook.go @@ -2,9 +2,7 @@ package excelize -import ( - "encoding/xml" -) +import "encoding/xml" const ( // sheet state values as defined by diff --git a/xmlWorksheet.go b/xmlWorksheet.go index 02794e46..2847c39b 100644 --- a/xmlWorksheet.go +++ b/xmlWorksheet.go @@ -23,6 +23,7 @@ type xlsxWorksheet struct { PageSetUp xlsxPageSetUp `xml:"pageSetup"` HeaderFooter xlsxHeaderFooter `xml:"headerFooter"` Drawing xlsxDrawing `xml:"drawing"` + LegacyDrawing xlsxLegacyDrawing `xml:"legacyDrawing"` Picture xlsxPicture `xml:"picture"` TableParts xlsxTableParts `xml:"tableParts"` } @@ -350,3 +351,16 @@ type xlsxTablePart struct { type xlsxPicture struct { RID string `xml:"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty"` // Relationship Id pointing to the image part. } + +// xlsxLegacyDrawing directly maps the legacyDrawing element in the namespace +// http://schemas.openxmlformats.org/spreadsheetml/2006/main - +// A comment is a rich text note that is attached to, and associated with, +// a cell, separate from other cell content. Comment content is stored +// separate from the cell, and is displayed in a drawing object (like a +// text box) that is separate from, but associated with, a cell. Comments +// are used as reminders, such as noting how a complex formula works, or +// to provide feedback to other users. Comments can also be used to explain +// assumptions made in a formula or to call out something special about the cell. +type xlsxLegacyDrawing struct { + RID string `xml:"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty"` +}