From a10ade898aa22f7e52d8f0519e034bcba249ff8d Mon Sep 17 00:00:00 2001 From: dfinke Date: Fri, 29 Apr 2022 20:39:15 -0400 Subject: [PATCH 1/4] Remove xl file after use in test --- __tests__/ImportExcelHeaderName.tests.ps1 | 1 + __tests__/testImportExcelSparse.xlsx | Bin 2666 -> 0 bytes 2 files changed, 1 insertion(+) delete mode 100644 __tests__/testImportExcelSparse.xlsx diff --git a/__tests__/ImportExcelHeaderName.tests.ps1 b/__tests__/ImportExcelHeaderName.tests.ps1 index 41944df..90ef05e 100644 --- a/__tests__/ImportExcelHeaderName.tests.ps1 +++ b/__tests__/ImportExcelHeaderName.tests.ps1 @@ -230,6 +230,7 @@ Describe "Import-Excel on a sheet with no headings" { $actual.Count | Should -Be 1 + Remove-Item $xlfile # Looks like -DataOnly does not handle empty columns # $actual[0].FirstName | Should -BeExactly 'Jean-Claude' # $actual[0].SecondName | Should -BeExactly 'Vandamme' diff --git a/__tests__/testImportExcelSparse.xlsx b/__tests__/testImportExcelSparse.xlsx deleted file mode 100644 index 099cbf7a8c72f059fdd9559be3fc81252573df38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2666 zcmZ{m2|UyPAIHaBF>)nWQ=^oHO=EIP2j-Z$T9Ti!kYnYxB1c&WIVVMObj*=6$FF1= zk@a&%;V0%+Q3<)~x9R`*8~^|B{e3+4dF=7n`}5fQ`Fg$I?=Kn!r96HpS znBveWYy=y|HQ31}(R|@fa$*?k^T4WHH;W+Cq}fhjYX(fbAnrYo>^by^izpyt)7L#6 z-vx*9WPcgnCozBd(;t&H*!a1q0O;QRZt54Qm?ksCP7)*`wb60i*+-7PgFYs3{Jeh^ ziFjvf29fg!p`b%fZ0#L>0m1cQ;}6Vasmdo~PQrTR%Y(}8rm4~J@7!wo5vnCK!#$_y z151+C1#UF_Gp5zEjjG#4m66F zj~yR+3)qbQk8veTpo&bm0?gCN7w_e#s>1q=Z>I`H!azL3_E;i0g4YEU6$c-=@P%W- zj)$Wce}|timw?j=_F7q5?Jhqz5u@8liYN+)v_;&v&FA&x8tiYI zk8MbkNwdG`3Y9w@B*XO`UMDtbxS-i~E6M1N#-3$tGlJNdWs`?!Sqcdo{@EQ~+$ycy zfUE=bmI(bSd;F2-x*H}@%6rY~YnpNScb>d(JVW){XqG!&l>eF1@&t88kX0soFt_CX#6b?s}>A8f3%5lMX|p~rtNDww_) z`V-96rvV&Vk|N(|dYINdcbGmlsM1({aj&{|?1lG(>i`xL_R6<1iNGc2_A*%@H~|3Z z-%Nh1&rW8;3B^h6EIcHqrm1?(=|65-Rg>XURae0V?@VPg-!*sjkAL>mu)`d5A!T24 z{l2bOG``{~+Y_U<1ebKDNQ-mJILc`ON$an=p$8>ELL|wShU1`*Z+%ffQ>^m`MZ4=F z@4|PR5YALAARzW|tAncEba_(`zlUP|@`3rg1J-lr?{ZX|RbArw)~uehXr243)Ma2X zeJF2T_E1X}UueQ|OSUn;xZf$?`@gQpCb zsF1Q9=&xR=txWV63b5#~GuTQ;ul!`9KGQAQ%!wnp=@>tEJl@|=b>o0JJK`%T02@l_hV_{tCaW9 z$5{WIN&_kDt0PvNYK>=GT+AG-2X#BlMHe1f)N#RR49pW-Gn7lFx{DU{{sb{X&{*3( zhf-VS7~pzZ91G#Hy37gL*oI_!p1Da(v0i}O_eoB|9mK;$&rtA$35 z$*@FVN4-@98@I+KN2Ul2rbPvRi{R%U;)VBPk-v^XF7&q=&&P?_7SGnq zpmaF@yi8lAT!aY_We;+XEx%3+2EZ(_6a5jU42^#Dcu>aE^cCMc?@71X`je5AV`v^j z=Ma4wPvwq+PQaPylF|IW*c(%;PzUL`zcKp~M)nN7w{4)IrKeE4-K3&RE2-|vr~}CF zG)cJJ$@gf7SCgR1Do=$Tt?5o$@0Y^21`fverhUWx0(Dw#*Q8F2c%!cH-Nua%+&l}g z|K-?vCs1s4KB>ITtvGCBbgR786kv+DmZB zB2bd?n4Z)Q&c0{yrvogv<;a7VVV{Y9L7TSGG3h!jc$bOcdX{Fs; zkya)8SGll<#UfEsNW;YyX6;b~_Gv&Q%*8i5&2qyv1xLFcAl=k8FN^5=wj~zy9(2&g z#fI)ks4)lgg&+@j9r4a1w-p@yHNR99gI=-5t@6G^vaHEoC>q7Vsmv_*-`+`>9N6Oj zyrFErfPG!DcJF3jnOxa6@%BXanaZKCzi&@v*M?=n%}C_^ox0tUXcRXO>sP$Y M=Oq(yG9T;PKU+CKg#Z8m From b634bf9d93bd6e4644ebc42e85e2f407c7bf6551 Mon Sep 17 00:00:00 2001 From: dfinke Date: Fri, 29 Apr 2022 20:39:51 -0400 Subject: [PATCH 2/4] 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 From 59e40d62d0a9d05534ee7480e9e4389ddce9bd2d Mon Sep 17 00:00:00 2001 From: dfinke Date: Sat, 30 Apr 2022 07:05:04 -0400 Subject: [PATCH 3/4] bump version --- ImportExcel.psd1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ImportExcel.psd1 b/ImportExcel.psd1 index c6c22be..e6934d7 100644 --- a/ImportExcel.psd1 +++ b/ImportExcel.psd1 @@ -6,7 +6,7 @@ RootModule = 'ImportExcel.psm1' # Version number of this module. - ModuleVersion = '7.4.2' + ModuleVersion = '7.5.0' # ID used to uniquely identify this module GUID = '60dd4136-feff-401a-ba27-a84458c57ede' From e55dfdd10ed97d27ecece4baff7ceb2bc7db6b6a Mon Sep 17 00:00:00 2001 From: dfinke Date: Sat, 30 Apr 2022 07:05:10 -0400 Subject: [PATCH 4/4] Update changes --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index c27429a..0381954 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,9 @@ +# v7.5.0 + +## Fixes + +- Importing multiple files with Import-Excel by pipeline uses only the first file for the row count https://github.com/dfinke/ImportExcel/issues/1172 + # v7.4.2 - Thank you [James Mueller](https://github.com/jamesmmueller) Updated `ConvertFrom-ExcelToSQLInsert` to handle single quotes in the SQL statement.