From 45afab5e919c0cb4d415b963aef396cb0de9ea87 Mon Sep 17 00:00:00 2001 From: Thomas Charbonnel Date: Mon, 1 Aug 2022 16:32:24 +0800 Subject: [PATCH] #1296 add GetStyleID to Rows Signed-off-by: Thomas Charbonnel --- rows.go | 12 ++++++++++++ rows_test.go | 13 +++++++++++++ test/Book1.xlsx | Bin 20738 -> 20446 bytes 3 files changed, 25 insertions(+) diff --git a/rows.go b/rows.go index 853c8f7df3..6f05bbb4a5 100644 --- a/rows.go +++ b/rows.go @@ -80,6 +80,7 @@ type Rows struct { sst *xlsxSST decoder *xml.Decoder token xml.Token + styleID int } // Next will return true if find the next row element. @@ -101,6 +102,9 @@ func (rows *Rows) Next() bool { rows.curRow = rowNum } rows.token = token + if styleID, _ := attrValToInt("s", xmlElement.Attr); styleID != 0 { + rows.styleID = styleID + } return true } case xml.EndElement: @@ -111,6 +115,14 @@ func (rows *Rows) Next() bool { } } +// GetStyleID provise a function to get the current Rows' style ID. It will +// return 0 when no style has been set. +// +// styleID := rows.GetStyleID() +func (rows *Rows) GetStyleID() int { + return rows.styleID +} + // Error will return the error when the error occurs. func (rows *Rows) Error() error { return rows.err diff --git a/rows_test.go b/rows_test.go index 4fe28517cd..f1963e4d0e 100644 --- a/rows_test.go +++ b/rows_test.go @@ -96,6 +96,19 @@ func TestRowsIterator(t *testing.T) { assert.Equal(t, expectedNumRow, rowCount) } +func TestRowsGetStyleID(t *testing.T) { + sheetName, expectedRowStyleID := "Sheet2", 1 + f, err := OpenFile(filepath.Join("test", "Book1.xlsx")) + require.NoError(t, err) + + rows, err := f.Rows(sheetName) + require.NoError(t, err) + rows.Next() + rowStyleID := rows.GetStyleID() + + assert.Equal(t, expectedRowStyleID, rowStyleID) +} + func TestRowsError(t *testing.T) { f, err := OpenFile(filepath.Join("test", "Book1.xlsx")) if !assert.NoError(t, err) { diff --git a/test/Book1.xlsx b/test/Book1.xlsx index 6a497e33afb45a5764a323326bd1f2f57480184d..72ab005a7f333934b8a4a0ab5db8fe327f959581 100644 GIT binary patch delta 2139 zcmaJ>do+~!AAaAtFhfe3%#2ICVv@z|vI^0-bi@o}awl6ZtJtPx8a5?6t;X4O(e8Zp zYpIa(b4f)n2CH3d>9VneHtm=$R#eDFi?Hl>tUZ}?e&_ec`=0Ofd7jVn`F`H_oF}6Q zeO!Pt1Uw>%h9DFQ;wsDwjO}M zvM{NTM+g0sp#?Myk)AIN*V7s$FO=B6bo@izA&mtn@}+|>7`h;gKKj0bf59NA&rAz6 zzqX!?AcfX=J~NQ4w(*Y1ej!3akRl75Zem1I;~G{pH89|gBPbre`a^Zk?`|lrH^MzG zq2P-7fLdE~d8yVF*fytuH(Ioz3pW$+>9~B&VS<`;Lt^ins}uzBrs8o{zfcSo|BLP! zQ3rrFQ$z%zAz+rTkBjY3{%dFKPscxY2qCK3$)g?8sIWze;+2jT>K7gpIM+XfA3 zPdkmOe+2g++e=SiACrWya2r?e^O6@Nap2dLliQFrEYp#sK7;N@x3AMMacl<>0>$h)NEA2kleG5x$-WVdBOS2dnpXbO1F-m{-(6OkK942_xnBX#Dx z%F$BO@#@0SM+ZFwtfR_vF-9ZW#nV)>V?tHy%?x(JPq|UKXDsVjTegb(Hf4K69E#(f zBz>~C$){G5QE=bPi{kuQbKM;8Zur|ZZl?~kbsx$f>R6fVaKx1CQ@#J-gMm%87c4`P zj=DUM&*@aI+7(pdY2fRey&>=v$FV!sy|!ZV#DDEV(>!)(<$O9>^^N4}nCrQ(Bdso$ zf3x<6S$cMscaVLM2gq9+omt8;-A9w1w4sp(_V@8Uf} zU->DTJ-q{&121Pg~d4Z4=t&quH0NPVH-ixWrX7oL60$)C|D)|q0q zTsoPKZHuD5*^P;Lho8{(q`!M)tfx|iSV+<7LbiFebFB_MD|(;)mMu-x3n(b9Ebxq{ zQZ;D-v0Bo|A=+$g|U?wB(YSlHP;@#pY+06GQs1b6bZay6}w- zqdU%bjcqL*(D`h8ZF*+wbkA6Pj&nmsL;cA29RF+0J*RStLIbXjbB%PIm$z&dcW@d9 z2csL=kA`<7fBq-y?d?bR{f0{0w#_m5gNb%)dibc0Rh07j_Nk@08WnGk79JctK5@@0 z?u<^)h{SsDx3TgOA-Me>Cxs2FuTKMvOrz9aqYSIFH->zvrlvsXa!}+DgbtZ4VI?z1h z_5rFT%l-ADed}Os)Ge8DtG6;Kjr9Oa*jc|nS?@A)=PTJA1{l8SlGPxeo>J}=@K6E` z<`DvDTsIT}!CZ{-4#vawJ#j)Y+g9~{FUjU&=n_!LHH5+zc)ku^bB*9xn}-qXHNXiC zBkFr`AS^~}f>upzQLzvf<0-I62h$X-MZ_=S0_IV<$$ezstIX+ z7(rwP^8E}TsE0tl8ua+tK%m9P2-W7G$--dKYysa4WdSkY0t#}Wz;!KXVGA0zbJ12=y<1Yr<_tp{oTDkcvC;0WfNRxUDCz~bqRVAh`r6$}AJC~*TD1gbkE zK(N9CT=6upRxP%Q2!GH2OkgKihiMF-3t!1M!G@Krg*Ybv6UYBAiot+jxt4(@f?W1i Gx%>^kDF(9u delta 2671 zcma);X;@Ro8plr(mP1%X3M2sn9tfa8_RC@wl%S9WLWHWIw1@~=32Ves5Mr%J?Ui+k z3N1o}if{##a78L8n-wiI(dSXI7zC9?7I8ro1-TPyuk=H5@A;6-ob!AC^MBttGjsY% za0gG}$UF`~MIS*?6!G8}1tI^v&XXVEtkluaTfM`bI0UKJKoCVJSc;#6C~rTvbri?SKje!H32u`YZ!H`+?yqOy?BnOV9Fwq0(3y7u=W?X;!AE@{{4J|duQd`F@ zo~a^8A4RdOxN6A@Ia^g*+Hgk=L3F8#Ss*1Df=)xZ4HNx}Gh@(3tdb^@DOM{%#a%RsT=r_!8DcHu=3xaDO`!O^RW=@`c*+)69SvWn zSJ1K|b|J+ue?xKHih2~rtd4v5ybeVWrjnJg5F>&yK~4p7Pd&2v#WjpwJA#KBfhe3vz+y5C_QTfSxsfE4I>*5*=ec1Q!K2zGxVXT?!bmY z5jxo=$MB0c_vV+m>ZVDy@KTr)R+rQg&SyoWM#t=PN@vE<@9v@;+NizE{LAseD>-&8 z2VMAI53%-CzWd2j#@Idgq>^6j9QBhlh0xzc(5VS3%6nUn6V4~SPS7y1;}whY?<5mW zI;xjkSnEEf8M&mXCD>h0G-S*}Z=MZ3ULjPi(Ji^Db~n+w;w*zvH2(O-;qV`xlveFc zll*wez}&?Fwb`es)-A|?c<6MFK}`lO{Nj4XkVNy=Go5O7+&BNyO-<%|p03|R>&W|I z{hDZA|7TA|KC5_7Is>Lza5%sd`m;9-5D zqK@JuDhy|TdA+;8JSS9I^)3GQt6fbYG@GNsldj8hEh=yK_!JFpxYWeEHW`xCGDbb^ zu&v{wc2?G?E5+8)3x9o887cD#uWwn>z5%*Q_OX8_hiooq7gv=^= zVy!$T*oTwR_ishnB@ay;W~MiG^3=Bw=L6owklf( znWsegDA%Sir=TfW{ObNo(#2}$g09T_LflcSMpEs-7d`h+ZfGV4dJ7#{&HJ@q)oq~O zxKMj;FgKMF5O~dv*Wi{mFLCtkdUq^vmchOg!g{#Tx@~YLcXZ2FsUG#OT`tLv_H~=I zZ7-r;{+_CHue)TRX^u|p8rSbXgTF(ajU36fY1!JW%04HXSv$G&*O|__-xG&bceo1) zLzqRwme+q|j6_kN_D#&11w158e*4nyxvY5pz4ZvIJyn=BJN7znaC%gVwQs>51eiC3 ze4%b~*%KwL;x{-f;J-5Z<%|0x z5y!%C&p{r`1c!ne*cJdO%M!MySs4DjI!IH;G#0@q32bE(@tr7qKmuuOJxJ!VvGx6M zTTbTNN9+zy+$;F=&+%{LeE7mye8}pUd~n%fF@Kx}gnqX0b~R+m zErHa}9Ck{rNPy_CiL(ZV{_--c@yGD~bP(n*S5Ai=FJ~ZH=(PA_Musj6X$$s#&5soP zEng7kws^1;?!c5Qm+;_X_(!YY$v~Cs!Opw2K*XiMPR+W-0VD?K1z>pK4eSF< kmoH5Ghe9rXDaap-09(F3z@A|M+5?sn2jF3>$(BF;4^cWI=Kufz