From 96493e059bb804e06a7a4abbed8a63722408ffe4 Mon Sep 17 00:00:00 2001 From: James Mueller <97551379+jamesmmueller@users.noreply.github.com> Date: Fri, 11 Mar 2022 16:09:38 -0600 Subject: [PATCH 01/10] ConvertFrom-ExcelToSQLInsert fix single quotes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If data in the Excel file contains single quotes, then the insert will bomb as it will be malformed. Quotes would need escaped. Not all languages will support the same escape method, so I recommend it being set by an optional parameter. Example of what will fail: Name ----------- Fry's INSERT INTO [Name] Values ( 'Fry's' ) Corrected for quotes (such as needing to escape a single quote with an additional single quote) INSERT INTO [Name] Values ('Fry''s') Example code: $ConvertToSqlParams = @{TableName = ‘dbo.Names’ Path = ‘C:\temp\data.xlsx’ ConvertEmptyStringsToNull = $true UseMSSQLSyntax = $true SingleQuoteStyle = "''" } $SQLInsert = ConvertFrom-ExcelToSqlInsert @ConvertToSqlParams --- Public/ConvertFrom-ExcelToSQLInsert.ps1 | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Public/ConvertFrom-ExcelToSQLInsert.ps1 b/Public/ConvertFrom-ExcelToSQLInsert.ps1 index b468d8b..858544e 100644 --- a/Public/ConvertFrom-ExcelToSQLInsert.ps1 +++ b/Public/ConvertFrom-ExcelToSQLInsert.ps1 @@ -16,12 +16,15 @@ function ConvertFrom-ExcelToSQLInsert { [switch]$NoHeader, [switch]$DataOnly, [switch]$ConvertEmptyStringsToNull, - [switch]$UseMsSqlSyntax + [switch]$UseMsSqlSyntax, + [Parameter(Mandatory = $false)] + $SingleQuoteStyle ) $null = $PSBoundParameters.Remove('TableName') $null = $PSBoundParameters.Remove('ConvertEmptyStringsToNull') $null = $PSBoundParameters.Remove('UseMsSqlSyntax') + $null = $PSBoundParameters.Remove('SingleQuoteStyle') $params = @{} + $PSBoundParameters @@ -38,11 +41,16 @@ function ConvertFrom-ExcelToSQLInsert { 'NULL' } else { - "'" + $record.$propertyName + "'" + if ( $SingleQuoteStyle ) { + "'" + $record.$propertyName.ToString().Replace("'",${SingleQuoteStyle}) + "'" + } + else { + "'" + $record.$propertyName + "'" + } } } $targetValues = ($values -join ", ") "INSERT INTO {0} ({1}) Values({2});" -f $TableName, $ColumnNames, $targetValues } -} \ No newline at end of file +} From 67ac63ddcf819f78645b3984cc1438202e9a0509 Mon Sep 17 00:00:00 2001 From: Craig Osborn Date: Fri, 25 Mar 2022 08:35:13 +0000 Subject: [PATCH 02/10] examples: Add VBA to single worksheet --- Examples/VBA/AddWorksheetVBA.ps1 | 41 ++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Examples/VBA/AddWorksheetVBA.ps1 diff --git a/Examples/VBA/AddWorksheetVBA.ps1 b/Examples/VBA/AddWorksheetVBA.ps1 new file mode 100644 index 0000000..3068c41 --- /dev/null +++ b/Examples/VBA/AddWorksheetVBA.ps1 @@ -0,0 +1,41 @@ +$xlfile = "$env:temp\test.xlsm" +Remove-Item $xlfile -ErrorAction SilentlyContinue + +$Excel = ConvertFrom-Csv @" +Region,Item,TotalSold +West,screwdriver,98 +West,kiwi,19 +North,kiwi,47 +West,screws,48 +West,avocado,52 +East,avocado,40 +South,drill,61 +North,orange,92 +South,drill,29 +South,saw,36 +"@ | Export-Excel $xlfile -TableName 'Sales' -WorksheetName 'Sales' -AutoSize -PassThru + +$wb = $Excel.Workbook +$sheet = $wb.Worksheets["Sales"] +$wb.CreateVBAProject() + +# Add a sub to the 'Worksheet_SelectionChange' event of the worksheet to highlight the selected row & column of the active table. +# https://docs.microsoft.com/en-gb/office/vba/excel/Concepts/Cells-and-Ranges/highlight-the-active-cell-row-or-column +$code = @" +Private Sub Worksheet_SelectionChange(ByVal Target As Range) + ' Clear the color of all the cells + Cells.Interior.ColorIndex = 0 + If Target.Cells.Count > 1 Then Exit Sub + Application.ScreenUpdating = False + With ActiveCell + ' Highlight the row and column that contain the active cell, within the current region + Range(Cells(.Row, .CurrentRegion.Column), Cells(.Row, .CurrentRegion.Columns.Count + .CurrentRegion.Column - 1)).Interior.ColorIndex = 38 + Range(Cells(.CurrentRegion.Row, .Column), Cells(.CurrentRegion.Rows.Count + .CurrentRegion.Row - 1, .Column)).Interior.ColorIndex = 24 + End With + Application.ScreenUpdating = True +End Sub +"@ + +$sheet.CodeModule.Code = $code + +Close-ExcelPackage $Excel -Show \ No newline at end of file From 29ea7012d7e99c0e2821d9bde7361b458455c957 Mon Sep 17 00:00:00 2001 From: Craig Osborn Date: Fri, 25 Mar 2022 08:36:02 +0000 Subject: [PATCH 03/10] examples: Add VBA module and call in all worksheets --- Examples/VBA/AddModuleMultpleWorksheetVBA.ps1 | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Examples/VBA/AddModuleMultpleWorksheetVBA.ps1 diff --git a/Examples/VBA/AddModuleMultpleWorksheetVBA.ps1 b/Examples/VBA/AddModuleMultpleWorksheetVBA.ps1 new file mode 100644 index 0000000..456a9ed --- /dev/null +++ b/Examples/VBA/AddModuleMultpleWorksheetVBA.ps1 @@ -0,0 +1,64 @@ +$xlfile = "$env:temp\test.xlsm" +Remove-Item $xlfile -ErrorAction SilentlyContinue + +ConvertFrom-Csv @" +Region,Item,TotalSold +West,screwdriver,98 +West,kiwi,19 +North,kiwi,47 +West,screws,48 +West,avocado,52 +East,avocado,40 +South,drill,61 +North,orange,92 +South,drill,29 +South,saw,36 +"@ | Export-Excel $xlfile -TableName 'Sales' -WorksheetName 'Sales' -AutoSize + +$Excel = ConvertFrom-Csv @" +Supplier,Item,TotalBought +Hardware,screwdriver,98 +Groceries,kiwi,19 +Hardware,screws,48 +Groceries,avocado,52 +Hardware,drill,61 +Groceries,orange,92 +Hardware,drill,29 +HArdware,saw,36 +"@ | Export-Excel $xlfile -TableName 'Purchases' -WorksheetName 'Purchases' -PassThru -AutoSize + +$wb = $Excel.Workbook +$wb.CreateVBAProject() + +# Create a module with a sub to highlight the selected row & column of the active table. +# https://docs.microsoft.com/en-gb/office/vba/excel/Concepts/Cells-and-Ranges/highlight-the-active-cell-row-or-column +$codeModule = @" +Public Sub HighlightSelection(ByVal Target As Range) + ' Clear the color of all the cells + Cells.Interior.ColorIndex = 0 + If Target.Cells.Count > 1 Then Exit Sub + Application.ScreenUpdating = False + With ActiveCell + ' Highlight the row and column that contain the active cell, within the current region + Range(Cells(.Row, .CurrentRegion.Column), Cells(.Row, .CurrentRegion.Columns.Count + .CurrentRegion.Column - 1)).Interior.ColorIndex = 38 + Range(Cells(.CurrentRegion.Row, .Column), Cells(.CurrentRegion.Rows.Count + .CurrentRegion.Row - 1, .Column)).Interior.ColorIndex = 24 + End With + Application.ScreenUpdating = True +End Sub +"@ + +$module = $wb.VbaProject.Modules.AddModule("PSExcelModule") +$module.Code = $codeModule + +# Add a call to the row & column highlight sub on each worksheet. +$codeSheet = @" +Private Sub Worksheet_SelectionChange(ByVal Target As Range) + HighlightSelection Target +End Sub +"@ + +foreach ($sheet in $wb.Worksheets) { + $sheet.CodeModule.Code = $codeSheet +} + +Close-ExcelPackage $Excel -Show \ No newline at end of file From 441f2ada226005792068056738a14d1cde1a5ab3 Mon Sep 17 00:00:00 2001 From: Craig Osborn Date: Fri, 25 Mar 2022 08:43:48 +0000 Subject: [PATCH 04/10] fix: Typo in filename --- ...eMultpleWorksheetVBA.ps1 => AddModuleMultipleWorksheetVBA.ps1} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Examples/VBA/{AddModuleMultpleWorksheetVBA.ps1 => AddModuleMultipleWorksheetVBA.ps1} (100%) diff --git a/Examples/VBA/AddModuleMultpleWorksheetVBA.ps1 b/Examples/VBA/AddModuleMultipleWorksheetVBA.ps1 similarity index 100% rename from Examples/VBA/AddModuleMultpleWorksheetVBA.ps1 rename to Examples/VBA/AddModuleMultipleWorksheetVBA.ps1 From b997e90e78e50f1709636b76cc6bdd0482d377d7 Mon Sep 17 00:00:00 2001 From: dfinke Date: Tue, 19 Apr 2022 09:23:36 -0400 Subject: [PATCH 05/10] bump version --- ImportExcel.psd1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ImportExcel.psd1 b/ImportExcel.psd1 index 7d7a2be..c6c22be 100644 --- a/ImportExcel.psd1 +++ b/ImportExcel.psd1 @@ -6,7 +6,7 @@ RootModule = 'ImportExcel.psm1' # Version number of this module. - ModuleVersion = '7.4.1' + ModuleVersion = '7.4.2' # ID used to uniquely identify this module GUID = '60dd4136-feff-401a-ba27-a84458c57ede' From 91b0e8b0ed629c1624d01bf866aaf5e278238572 Mon Sep 17 00:00:00 2001 From: dfinke Date: Tue, 19 Apr 2022 09:26:20 -0400 Subject: [PATCH 06/10] update https://github.com/dfinke/ImportExcel/pull/1145 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 5f26638..c27429a 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +# v7.4.2 + +- Thank you [James Mueller](https://github.com/jamesmmueller) Updated `ConvertFrom-ExcelToSQLInsert` to handle single quotes in the SQL statement. + - Thank you to Josh Hendricks - Add images to spreadsheets. [Check it out](https://github.com/dfinke/ImportExcel/tree/master/Examples/AddImage) - Catch up with him on [GitHub](https://github.com/joshooaj) and [Twitter](https://twitter.com/joshooaj) for the idea From a10ade898aa22f7e52d8f0519e034bcba249ff8d Mon Sep 17 00:00:00 2001 From: dfinke Date: Fri, 29 Apr 2022 20:39:15 -0400 Subject: [PATCH 07/10] 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 08/10] 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 09/10] 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 10/10] 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.