From b634bf9d93bd6e4644ebc42e85e2f407c7bf6551 Mon Sep 17 00:00:00 2001 From: dfinke Date: Fri, 29 Apr 2022 20:39:51 -0400 Subject: [PATCH] Fix fir #1172 --- Public/Import-Excel.ps1 | 2 + .../ReadMultipleXLSXFiles.tests.ps1 | 57 ++++++++++++++++++ __tests__/ImportExcelTests/rows05.xlsx | Bin 0 -> 2783 bytes __tests__/ImportExcelTests/rows10.xlsx | Bin 0 -> 2948 bytes 4 files changed, 59 insertions(+) create mode 100644 __tests__/ImportExcelTests/ReadMultipleXLSXFiles.tests.ps1 create mode 100644 __tests__/ImportExcelTests/rows05.xlsx create mode 100644 __tests__/ImportExcelTests/rows10.xlsx diff --git a/Public/Import-Excel.ps1 b/Public/Import-Excel.ps1 index adadc82..49982cb 100644 --- a/Public/Import-Excel.ps1 +++ b/Public/Import-Excel.ps1 @@ -226,6 +226,8 @@ } catch { throw "Failed importing the Excel workbook '$Path' with worksheet '$WorksheetName': $_"; return } finally { + $EndRow = 0 + $EndColumn = 0 if ($Path) { $stream.close(); $ExcelPackage.Dispose() } } } diff --git a/__tests__/ImportExcelTests/ReadMultipleXLSXFiles.tests.ps1 b/__tests__/ImportExcelTests/ReadMultipleXLSXFiles.tests.ps1 new file mode 100644 index 0000000..b8631a3 --- /dev/null +++ b/__tests__/ImportExcelTests/ReadMultipleXLSXFiles.tests.ps1 @@ -0,0 +1,57 @@ +[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', '', Justification = 'False Positives')] +Param() + +Import-Module $PSScriptRoot\..\..\ImportExcel.psd1 -Force + +Describe "Test reading multiple XLSX files of differernt row count" -Tag ReadMultipleXLSX { + It "Should find these xlsx files" { + Test-Path -Path $PSScriptRoot\rows05.xlsx | Should -BeTrue + Test-Path -Path $PSScriptRoot\rows10.xlsx | Should -BeTrue + } + + It "Should find two xlsx files" { + (Get-ChildItem $PSScriptRoot\row*xlsx).Count | Should -Be 2 + } + + It "Should get 5 rows" { + (Import-Excel $PSScriptRoot\rows05.xlsx).Count | Should -Be 5 + } + + It "Should get 10 rows" { + (Import-Excel $PSScriptRoot\rows10.xlsx).Count | Should -Be 10 + } + + It "Should get 15 rows" { + $actual = Get-ChildItem $PSScriptRoot\row*xlsx | Import-Excel + + $actual.Count | Should -Be 15 + } + + It "Should get 4 property names" { + $actual = Get-ChildItem $PSScriptRoot\row*xlsx | Import-Excel + + $names = $actual[0].psobject.properties.name + $names.Count | Should -Be 4 + + $names[0] | Should -BeExactly "Region" + $names[1] | Should -BeExactly "State" + $names[2] | Should -BeExactly "Units" + $names[3] | Should -BeExactly "Price" + } + + It "Should have the correct data" { + $actual = Get-ChildItem $PSScriptRoot\row*xlsx | Import-Excel + + # rows05.xlsx + $actual[0].Region | Should -BeExactly "South" + $actual[0].Price | Should -Be 181.52 + $actual[4].Region | Should -BeExactly "West" + $actual[4].Price | Should -Be 216.56 + + # rows10.xlsx + $actual[5].Region | Should -BeExactly "South" + $actual[5].Price | Should -Be 199.85 + $actual[14].Region | Should -BeExactly "East" + $actual[14].Price | Should -Be 965.25 + } +} \ No newline at end of file diff --git a/__tests__/ImportExcelTests/rows05.xlsx b/__tests__/ImportExcelTests/rows05.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3f54f30c98c963c9e7604c9f6cbab809b90fa0b3 GIT binary patch literal 2783 zcmZ`*c{r5&7a!YLldO|vhziLvvL%U2ilLY+4I#_e*O|#OH=^u?Y>ia1CS%JkZDhz~ zT-g~*$U1JQEFrq@=su6h?|0ApJn#2;|2XG)&*$?w=kqm%Gcogn*nsDV&m;56^Ce{v z1`y~369~iy0)cGwe0{JeAFRE3upbIzs}SVvRh`^n#02AMu}6_CGOD2Zc|%YF)Z&?T zLpnJ??^`0ds>at>O-?fZCKQ)(_#=63i|vFx^rh!&I;rJD-2I1f;9ChTQ6_SueTgYH zojiI+@wpi$C7Cle`Mi9i4LAQRqm^eHorQ^dT#doI2U zrUcGh8apKT?a#lj&eS2}7jIpYlQ`n4>eq;9HdfgmEt!zoWV_|yBTi-~Pjc$JV5_5X z4`!(jZv^=7UeVHilx-Co^#}( zHAroRhY$lqlDb~|<5)5Q6`;#Ak*lY94t5NGXW>w8@YI!iKeQS5lqmlcj5*K*P3W>vqvpR9zx(yrmSYnvA z1T*xZ9&q?BCOB#Zd2Ot1c30R<$DZzt4lfRqYzxn}$Yb?n9;UP{upQTTuYTB?6DGja zV-ehJ*n;KVXk@v^CBnQ6tLK~1UD0T}o22(ZO>7<6qJnFBWS*5&_mm*eHJ_31|HK3bdf&HUcx z>4>(4exN-B(B^*N4DwP8^hJ9*`ucj(v=e`^-J?l~D^wtNlZuU2{v#P$56^zqm=)NO zBywqpqoQ(Q1UDhEIFG^MEf5V8`p$pHB-}AMrw_nFg%Jc2 z{)Nde_UVz?Q9?;l2MwNR`{vo#8gp0gnAPH8v(-1CIs-MSbj;X8gI9wVWsBjFD@O&3u>PCyRM_&ziirqT!YG ziePak@VU9oYrSGZ#!Z)E4Qv&@6=Qo-!y8kWqd&sMnE7I>01we?o;!Ip-jZ zkEe!Kus*b8A0D$XkkD}lR>MBA$Qp2gVz7hP4T@GOJ62i{xirGR-KuL?^y9;OX|>UA z7c01G-crGhdu>|rCq=@A*)27j-OC$!VhU^DM&fYBBM>o*3t!F-Q@G{)4WN7 zv(YNt0cCw>6MN*$#nt_d4iz0d{VGwVYi-7={BfR+w1-$ffw=B+`+!BsLLC*Z#rWb+ z;wHgQi4!L(!!o)4J}n5ObP+jC2{)QhqnJ(wrq?8g*;BMJEr_n?63LQ7-nIMhAHFh9 zFwHGKqR~S&(~S*rwiGZf;!OR-{C#piR`RV>u(PbBJ7Z?-Sp3w1c3ySCnY1f0mA%~3 zS;x2-vMhT;!|!c-t5p$=@EIbw ziaoy*WF1xdDX%{+W_DA~MtE@qaVTM2Y;@3~foLi`3m0-d81<~G(M=wHRDGEUfr%Ro zn%caZ;i{_kJlvx>*GcSKD(cm-IsbSL9fk?eB3b-6cy`Ukd7r4~-XqtpxZ} zEZSA}lte_=-(e66%b}JrFI79fLjU@KvrDVYhr&~#-MgN6t^<8yJTR~5ToUk?@@<0IgdJz4+ z-W1NjC=WpJUl$<&8@l*E*P^`z=sl8V_`87wu%@&By@~WjLbK4_&;f>LkD=~Orr)zP zuh|WA;6?`||A+JJtwTS_w5_}wXkbtO`xF1OqxV*!*Bx!@cjGd6r^@aQ*qchv4NaK4 cvBdf-b+1fK;VeK=5Qr6c-U1M_veUl)0Zub@Gynhq literal 0 HcmV?d00001 diff --git a/__tests__/ImportExcelTests/rows10.xlsx b/__tests__/ImportExcelTests/rows10.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0ca23b912f46c2aebb3dd1eedb85fa508905fab0 GIT binary patch literal 2948 zcmZ{mc{tSj7stmowjpKLAVXQkGLx+<6^S&XYwXEZlW8z9n8|vH7D|?8vJ0UJj*IfF^mV7QmEq`kv=zS=_Uub~Lid>0=*6DC!1bAT@cH+r8xLUgwy zvu8G`8x8~JeHd4fS&aPa%=A;&q=hRNp?mgX4Fj9)TWt(>#6yx(TRb+-1}HOx87$Fb z=ZUrP5jit+1_k#G)J!u{=>6l35H!;@Y2Vx(Jyo*36|7gaDzwUZwmA;|Sz!N>SiQ=* z@!sQ%p%uBhDnD5sImp~<-MSW;f(bE~m?*L^IS$v#NSs$G3ZHUMUpH;;jKfPfWki1z zMj-`-xbdNW0-HJb{$?c`s5%?2DEssZ##|ui>2lsloz3ExVIbhRi)%zitl&A&m7DOl zejj+=IRkn6F*zdmg=Dm8*oChvYduw-?`|CGijOUifpo;)bt)Fb@edDn%nNBB^R3OL z6~;*O^*V*Oo@gWP`r0gz4%*HC8Qvf{ZN7A%;}*#x$4GJ2wap-+<&I;K0c|BbdVI4d zrh=}Z(`4KL=&uz2_PFdl@EX=WMc#ki?qiyD)n{N)3}!;_)8ri=#x9ZPTC4Ax=fpT^ zawqe1nuo4-%rn{P*|XE!!9K$-=!N2gacDdq$I(ub?Q6dl7${o0Xl;%dzyBy%sR4QS zQFB3PCuz6CkVsYa{7A%%>XP(%e$dte{Xt%)1^+^7FN^dBya&|t$oW&5+lqWP9#`?vh=B*CBvUikm1gg&{_I9>reF* zBXU<+s&Q*`^3HcP-@IE%c1uBKHlwfYJO= zo>#&c%Tb$3{7fUh(G~fO>#e0}Jqy|l*063%UEm(Wg9&~E!y5n&6Yk7^W)h1g7xuGR z81MoB3O|_qs6IED?@Fj3b#m~;d$rEII52xA(XK87K2v*1$?OdRoc*S)dvNM+oRPD= z#<}>stKOeC4wp}T#esWo>|cS)`A`(31a^BUoAAYNwD&+YWI*EaajNIrz? z*)etJYdhb>$ezHTu3j>LxWMf+^!ypB2wy^}bSYHA;cQF!I$c{2KI<3zr) z!UFvE&c zj?&g2^a?iMChkl%(=XOJQkhV;}Z)cW;_hhFK>+E^j&FW4UneX}6)Y%_aAC zCt`opU}JJhCEwV=kV@71P#BY>aJ)DRbPCUiYb5(C zsU~8=X2FUAW{8SPd7dVQGm@<8{xxfVOX@F*$R?JF#+g^;mBIpA)qSa`RQ2e4!?39U z^qKpnGMSX&xtwz_-}4VnC=`*ulwH3INhvdxxy4d^T&BUOub8-8$iG%5V&P<(SpU9B zGe+w#+ti~PZY63~3#{h`HdB))!nI=}T~7Po#UW<$V@OU84lTL?gf&0<6_nX<-1E zt?RqNSj2?UAZjW!^9eb|Yw$3k&Az*S4;eD#U$-Mm&HXI}RaCzBK<}KL`Hd)VXK9-U zqN$VoUsyYcke90A-kK0!-n<**NmDyt?=qH|PIJFr-6yVIpatS7aPEtaP2co4s-YsF z4PTB;h(+M(xeN2mgj2r-7x_

t9%1rW{29&CiA(p#p1!OS%B3<0>bMnF-ft)}U?* z3nTU_$!`@$2b`LyD1{lMELJ}5QBAXt4sxIIXQ~`r*=hjg);KCAtG#zIo7dLL}D~NmU)#is!RKp zCAP$_$3Avlr2bPEpR>UjZwF$qZvggtc`lO7kyLj3e?!nlPA(Nd{AD$D!%)UAVOGdKz?xR`9m>wxKWxn^jcH)Q64S$Xz)pw_U^Ob29h zYQRv+S-SbI8qk0qsw#a!Kxk-ED+juESDYM&Be;Bqi zLM(dIfl*??^y0{w8x9J|!>hwa^l#f5n;n<^pWSVH0PaD~*-Ey|mE9*?JIZ!P?rF!F z^IK-dF5<*p4!xLbBn=!ffe8KaN_?4SUEAp3dAMqDn;`T7SX$jZq8 literal 0 HcmV?d00001