mirror of
https://github.com/dfinke/ImportExcel.git
synced 2025-12-06 00:23:20 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
1
.vscode/spellright.dict
vendored
1
.vscode/spellright.dict
vendored
@@ -24,3 +24,4 @@ pwd
|
||||
Nuget
|
||||
EPPLus
|
||||
intellisense
|
||||
PivtoTableName
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
ConvertFrom-ExcelToSQLInsert People .\testSQLGen.xlsx
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Import-Module ..\..\ImportExcel.psd1 -Force
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$f = ".\dashboard.xlsx"
|
||||
Remove-Item $f -ErrorAction Ignore
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,4 @@
|
||||
Import-Module ..\..\ImportExcel.psd1 -Force
|
||||
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
ConvertFrom-ExcelToSQLInsert -TableName "Movies" -Path ".\Movies.xlsx" -ConvertEmptyStringsToNull
|
||||
''
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
param ($fibonacciDigits=10)
|
||||
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$file = "fib.xlsx"
|
||||
rm "fib.xlsx" -ErrorAction Ignore
|
||||
Remove-Item "fib.xlsx" -ErrorAction Ignore
|
||||
|
||||
$(
|
||||
New-PSItem 0
|
||||
@@ -9,7 +11,7 @@ $(
|
||||
|
||||
(
|
||||
2..$fibonacciDigits |
|
||||
ForEach {
|
||||
ForEach-Object {
|
||||
New-PSItem ('=a{0}+a{1}' -f ($_+1),$_)
|
||||
}
|
||||
)
|
||||
|
||||
Binary file not shown.
@@ -1,3 +1,7 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$xlfile = "$env:temp\testFmt.xlsx"
|
||||
|
||||
Get-Process |
|
||||
Select-Object Company,Handles,PM, NPM|
|
||||
Export-Excel $xlfile -Show -AutoSize -CellStyleSB {
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$xlfile = "$env:temp\testFmt.xlsx"
|
||||
Remove-Item $xlfile -ErrorAction Ignore
|
||||
|
||||
$RandomStyle = {
|
||||
param(
|
||||
$workSheet,
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#$(
|
||||
# New-PSItem 'Every Man a King' http://orisonswettmarden.wwwhubs.com/ccount/click.php?id=2
|
||||
# New-PSItem 'Be Good to Yourself' http://orisonswettmarden.wwwhubs.com/ccount/click.php?id=3
|
||||
# New-PSItem 'Character : The Grandest Thing in the World' http://orisonswettmarden.wwwhubs.com/ccount/click.php?id=4
|
||||
# New-PSItem 'The Conquest of Worry' http://orisonswettmarden.wwwhubs.com/ccount/click.php?id=5
|
||||
# New-PSItem 'Success Nuggets' http://orisonswettmarden.wwwhubs.com/ccount/click.php?id=6
|
||||
#) | Export-Excel hyperlinks.xlsx -Show -AutoSize
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
@"
|
||||
site,link
|
||||
google,http://www.google.com
|
||||
stackoverflow,http://stackoverflow.com
|
||||
microsoft,http://microsoft.com
|
||||
"@ | ConvertFrom-Csv | Export-Excel
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
|
||||
Import-Html "http://en.wikipedia.org/wiki/Demographics_of_India" 4
|
||||
@@ -1 +1,3 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
Import-Html "http://www.science.co.il/PTelements.asp" 1
|
||||
@@ -1 +1,3 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
Import-Html "https://en.wikipedia.org/wiki/List_of_Star_Trek:_The_Original_Series_episodes" 2
|
||||
6
Examples/JoinWorksheet/EastSales.csv
Normal file
6
Examples/JoinWorksheet/EastSales.csv
Normal file
@@ -0,0 +1,6 @@
|
||||
"Region","Item","UnitSold","UnitCost"
|
||||
"East","Banana","38","0.26"
|
||||
"East","Kale","71","0.69"
|
||||
"East","Apple","35","0.55"
|
||||
"East","Potato","48","0.48"
|
||||
"East","Kale","41","0.74"
|
||||
|
22
Examples/JoinWorksheet/JoinSalesData.ps1
Normal file
22
Examples/JoinWorksheet/JoinSalesData.ps1
Normal file
@@ -0,0 +1,22 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$xlfile = "$env:temp\AllSales.xlsx"
|
||||
|
||||
Remove-Item $xlfile -ErrorAction Ignore
|
||||
|
||||
$params = @{
|
||||
AutoSize = $true
|
||||
AutoFilter = $true
|
||||
AutoNameRange = $true
|
||||
ExcelChartDefinition = New-ExcelChartDefinition -XRange Item -YRange UnitSold -Title 'Units Sold'
|
||||
Path = $xlfile
|
||||
}
|
||||
|
||||
Import-Csv $PSScriptRoot\NorthSales.csv | Export-Excel -WorkSheetname North @params
|
||||
Import-Csv $PSScriptRoot\EastSales.csv | Export-Excel -WorkSheetname East @params
|
||||
Import-Csv $PSScriptRoot\SouthSales.csv | Export-Excel -WorkSheetname South @params
|
||||
Import-Csv $PSScriptRoot\WestSales.csv | Export-Excel -WorkSheetname West @params
|
||||
|
||||
$params.Remove("AutoNameRange")
|
||||
$params.Remove("ExcelChartDefinition")
|
||||
Join-Worksheet -WorkSheetName AllSales -Show @params
|
||||
5
Examples/JoinWorksheet/NorthSales.csv
Normal file
5
Examples/JoinWorksheet/NorthSales.csv
Normal file
@@ -0,0 +1,5 @@
|
||||
"Region","Item","UnitSold","UnitCost"
|
||||
"North","Apple","40","0.68"
|
||||
"North","Kale","55","0.35"
|
||||
"North","Banana","33","0.31"
|
||||
"North","Pear","29","0.74"
|
||||
|
6
Examples/JoinWorksheet/SouthSales.csv
Normal file
6
Examples/JoinWorksheet/SouthSales.csv
Normal file
@@ -0,0 +1,6 @@
|
||||
"Region","Item","UnitSold","UnitCost"
|
||||
"South","Banana","54","0.46"
|
||||
"South","Pear","39","0.44"
|
||||
"South","Potato","33","0.46"
|
||||
"South","Banana","49","0.31"
|
||||
"South","Apple","38","0.59"
|
||||
|
12
Examples/JoinWorksheet/WestSales.csv
Normal file
12
Examples/JoinWorksheet/WestSales.csv
Normal file
@@ -0,0 +1,12 @@
|
||||
"Region","Item","UnitSold","UnitCost"
|
||||
"West","Banana","74","0.56"
|
||||
"West","Apple","26","0.7"
|
||||
"West","Banana","59","0.49"
|
||||
"West","Potato","56","0.62"
|
||||
"West","Banana","60","0.64"
|
||||
"West","Pear","32","0.29"
|
||||
"West","Apple","73","0.26"
|
||||
"West","Banana","49","0.59"
|
||||
"West","Pear","65","0.35"
|
||||
"West","Apple","60","0.34"
|
||||
"West","Kale","67","0.38"
|
||||
|
@@ -1,4 +1,6 @@
|
||||
ColumnChart -Title "Central Limit Theorem" -NoLegend ($(
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
ColumnChart -Title "Central Limit Theorem" -NoLegend ($(
|
||||
for ($i = 1; $i -le 500; $i++) {
|
||||
$s = 0
|
||||
for ($j = 1; $j -le 100; $j++) {
|
||||
|
||||
@@ -2,5 +2,7 @@
|
||||
# Sum up handles by company
|
||||
# Show the Pie Chart
|
||||
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
PieChart -Title "Total Handles by Company" `
|
||||
(Invoke-Sum (Get-Process|Where company) company handles)
|
||||
(Invoke-Sum (Get-Process | Where-Object company) company handles)
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
# Sum up PM by company
|
||||
# Show the Pie Chart
|
||||
|
||||
PieChart -Title "Total PM by Company" `
|
||||
(Invoke-Sum (Get-Process|Where company) company pm)
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
PieChart -Title "Total PM by Company" `
|
||||
(Invoke-Sum (Get-Process|Where-Object company) company pm)
|
||||
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
BarChart (.\TargetData.ps1) "A BarChart"
|
||||
@@ -1 +1,3 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
ColumnChart (.\TargetData.ps1) "A ColumnChart"
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
PieChart (.\TargetData.ps1) "A PieChart"
|
||||
@@ -1,3 +1,5 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$header = echo `
|
||||
'Date/Time - Peak Brightness (UT)' `
|
||||
'Latitude (Deg)' `
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$file = "disks.xlsx"
|
||||
|
||||
rm $file -ErrorAction Ignore
|
||||
Remove-Item $file -ErrorAction Ignore
|
||||
|
||||
$data = $(
|
||||
New-PSItem 100 -100
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$file = "disks.xlsx"
|
||||
|
||||
rm $file -ErrorAction Ignore
|
||||
Remove-Item $file -ErrorAction Ignore
|
||||
|
||||
$data = $(
|
||||
New-PSItem 100 -100
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$file = "disks.xlsx"
|
||||
|
||||
rm $file -ErrorAction Ignore
|
||||
Remove-Item $file -ErrorAction Ignore
|
||||
|
||||
$data = $(
|
||||
New-PSItem 1
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$file = "disks.xlsx"
|
||||
|
||||
rm $file -ErrorAction Ignore
|
||||
Remove-Item $file -ErrorAction Ignore
|
||||
|
||||
$data = $(
|
||||
New-PSItem 100 -100
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$file = "disks.xlsx"
|
||||
|
||||
rm $file -ErrorAction Ignore
|
||||
Remove-Item $file -ErrorAction Ignore
|
||||
|
||||
Get-CimInstance win32_logicaldisk -filter "drivetype=3" |
|
||||
Select DeviceID,Volumename,Size,Freespace |
|
||||
Select-Object DeviceID,Volumename,Size,Freespace |
|
||||
Export-Excel -Path $file -Show -AutoSize -NumberFormat "0"
|
||||
@@ -1,7 +1,9 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$file = "disks.xlsx"
|
||||
|
||||
rm $file -ErrorAction Ignore
|
||||
Remove-Item $file -ErrorAction Ignore
|
||||
|
||||
Get-CimInstance win32_logicaldisk -filter "drivetype=3" |
|
||||
Select DeviceID,Volumename,Size,Freespace |
|
||||
Select-Object DeviceID,Volumename,Size,Freespace |
|
||||
Export-Excel -Path $file -Show -AutoSize
|
||||
BIN
Examples/NumberFormat/disks.xlsx
Normal file
BIN
Examples/NumberFormat/disks.xlsx
Normal file
Binary file not shown.
@@ -1,6 +1,8 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$file = "sales.xlsx"
|
||||
|
||||
rm $file -ErrorAction Ignore
|
||||
Remove-Item $file -ErrorAction Ignore
|
||||
|
||||
$xlPkg = Import-Csv .\sales.csv | Export-Excel $file -PassThru
|
||||
|
||||
@@ -10,7 +12,7 @@ $ws.Cells["E1"].Value = "TotalSold"
|
||||
$ws.Cells["F1"].Value = "Add 10%"
|
||||
|
||||
2..($ws.Dimension.Rows) |
|
||||
ForEach {
|
||||
ForEach-Object {
|
||||
$ws.Cells["E$_"].Formula = "=C$_+D$_"
|
||||
$ws.Cells["F$_"].Formula = "=E$_+(10%*(C$_+D$_))"
|
||||
}
|
||||
|
||||
BIN
Examples/PassThru/sales.xlsx
Normal file
BIN
Examples/PassThru/sales.xlsx
Normal file
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
Import-Module ..\..\ImportExcel.psd1 -Force
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
Remove-Item .\test1.xlsx -ErrorAction Ignore
|
||||
|
||||
|
||||
BIN
Examples/PivotTable/test1.xlsx
Normal file
BIN
Examples/PivotTable/test1.xlsx
Normal file
Binary file not shown.
BIN
Examples/PivotTableFilters/testPivot.xlsx
Normal file
BIN
Examples/PivotTableFilters/testPivot.xlsx
Normal file
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
Import-Module ..\..\ImportExcel.psd1 -Force
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$xlFile=".\testPivot.xlsx"
|
||||
Remove-Item $xlFile -ErrorAction Ignore
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$plt = New-Plot
|
||||
$plt.Plot((Get-Range 0 5 .02|%{[math]::Cos(2*[math]::pi*$_)}))
|
||||
$plt.SetChartSize(800,300)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Import-Module -name ImportExcel -Force -Verbose
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$sql = @"
|
||||
SELECT rootfile.baseName , rootfile.extension , Image.fileWidth AS width , image.fileHeight AS height ,
|
||||
@@ -14,7 +14,7 @@ $sql = @"
|
||||
LEFT JOIN AgInternedExifLens LensRef ON LensRef.id_Local = metadata.lensRef
|
||||
LEFT JOIN AgInternedExifCameraModel Camera ON Camera.id_local = metadata.cameraModelRef
|
||||
"@
|
||||
``
|
||||
|
||||
#Sql Statement gets 20 columns of data from Adobe lightroom database
|
||||
#Define a pivot table and chart for total pictures with each lens.
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
ipmo C:\Users\mcp\Documents\GitHub\ImportExcel\ImportExcel.psd1 -Force
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
Get-SQL -Session f1 -Excel -Connection C:\Users\mcp\OneDrive\Public\F1\f1Results.xlsx -showtables -Verbose
|
||||
|
||||
del .\demo3.xlsx
|
||||
Remove-Item .\demo3.xlsx
|
||||
$session = $DbSessions["f1"]
|
||||
|
||||
$SQL = "SELECT top 25 DriverName, Count(RaceDate) as Races ,
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
|
||||
$p = ps | select Company, Handles | Export-Excel c:\temp\testBackgroundColor.xlsx -ClearSheet -KillExcel -PassThru
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$p = Get-Process | Select-Object Company, Handles | Export-Excel c:\temp\testBackgroundColor.xlsx -ClearSheet -KillExcel -PassThru
|
||||
|
||||
$ws = $p.Workbook.WorkSheets[1]
|
||||
$totalRows = $ws.Dimension.Rows
|
||||
|
||||
Set-Format -Address $ws.Cells["B2:B$($totalRows)"] -BackgroundColor LightBlue
|
||||
|
||||
Export-Excel -ExcelPackage $p -show
|
||||
Export-Excel -ExcelPackage $p -show -AutoSize
|
||||
@@ -1,6 +1,9 @@
|
||||
. ..\New-PSItem.ps1
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
rm *.xlsx
|
||||
|
||||
#. ..\New-PSItem.ps1
|
||||
|
||||
Remove-Item *.xlsx
|
||||
|
||||
$(
|
||||
New-PSItem 12001 Nails 37 3.99 =C2*D2 (echo ID Product Quantity Price Total)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
Remove-Item .\testFormula.xlsx -ErrorAction Ignore
|
||||
|
||||
@"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
. ..\New-PSItem.ps1
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
rm *.xlsx
|
||||
Remove-Item *.xlsx
|
||||
|
||||
$(
|
||||
New-PSItem =2%/12 60 500000 "=pmt(rate,nper,pv)" (echo rate nper pv pmt)
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
rm *.xlsx
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
Remove-Item *.xlsx
|
||||
|
||||
$(
|
||||
New-PSItem '=Hyperlink("http://dougfinke.com/blog","Doug Finke")' @("Link")
|
||||
|
||||
BIN
Examples/SpreadsheetCells/hyperlink.xlsx
Normal file
BIN
Examples/SpreadsheetCells/hyperlink.xlsx
Normal file
Binary file not shown.
@@ -1,3 +1,7 @@
|
||||
<#
|
||||
Revisit I think yahoo deprecated their service
|
||||
#>
|
||||
|
||||
function Get-StockInfo {
|
||||
param(
|
||||
$stock,
|
||||
@@ -7,15 +11,15 @@ function Get-StockInfo {
|
||||
|
||||
Process {
|
||||
|
||||
if(!$endDate) { $endDate = $startDate}
|
||||
if (!$endDate) { $endDate = $startDate}
|
||||
|
||||
$baseUrl = "http://query.yahooapis.com/v1/public/yql?q="
|
||||
$q = @"
|
||||
$baseUrl = "http://query.yahooapis.com/v1/public/yql?q="
|
||||
$q = @"
|
||||
select * from yahoo.finance.historicaldata where symbol = "$($stock)" and startDate = "$($startDate.ToString('yyyy-MM-dd'))" and endDate = "$($endDate.ToString('yyyy-MM-dd'))"
|
||||
"@
|
||||
$suffix = "&env=store://datatables.org/alltableswithkeys&format=json"
|
||||
$r=Invoke-RestMethod ($baseUrl + $q + $suffix)
|
||||
$r.query.results.quote
|
||||
$suffix = "&env=store://datatables.org/alltableswithkeys&format=json"
|
||||
$r = Invoke-RestMethod ($baseUrl + $q + $suffix)
|
||||
$r.query.results.quote
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,20 @@
|
||||
$Symbol = "MSFT"
|
||||
<#
|
||||
Revisit I think yahoo deprecated their service
|
||||
#>
|
||||
|
||||
. .\Get-StockInfo.ps1
|
||||
# try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
rm *.xlsx
|
||||
# $Symbol = "MSFT"
|
||||
|
||||
$chart = New-ExcelChart -XRange Date -YRange Volume `
|
||||
-ChartType ColumnStacked `
|
||||
-Column 9 -Title "$Symbol Volume"
|
||||
# . .\Get-StockInfo.ps1
|
||||
|
||||
Get-StockInfo $Symbol 11/2 11/30 |
|
||||
Export-Excel .\stocks.xlsx -Show `
|
||||
-AutoSize -AutoNameRange `
|
||||
-ExcelChartDefinition $chart
|
||||
# Remove-Item *.xlsx -ErrorAction Ignore
|
||||
|
||||
# $chart = New-ExcelChart -XRange Date -YRange Volume `
|
||||
# -ChartType ColumnStacked `
|
||||
# -Column 9 -Title "$Symbol Volume"
|
||||
|
||||
# Get-StockInfo $Symbol 11/2 11/30 |
|
||||
# Export-Excel .\stocks.xlsx -Show `
|
||||
# -AutoSize -AutoNameRange `
|
||||
# -ExcelChartDefinition $chart
|
||||
BIN
Examples/Stocks/stocks.xlsx
Normal file
BIN
Examples/Stocks/stocks.xlsx
Normal file
Binary file not shown.
@@ -1,38 +1,40 @@
|
||||
$xlfile = "testData.xlsx"
|
||||
rm *.xlsx
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
$r = dir C:\WINDOWS\system32
|
||||
$xlfile = "testData.xlsx"
|
||||
Remove-Item *.xlsx
|
||||
|
||||
$r = Get-ChildItem C:\WINDOWS\system32
|
||||
|
||||
$BySize=@{}
|
||||
$r | ForEach{ $BySize.($_.extension)+=$_.length }
|
||||
$r | ForEach-Object{ $BySize.($_.extension)+=$_.length }
|
||||
|
||||
$top10BySize = $BySize.GetEnumerator() |
|
||||
ForEach{ [PSCustomObject]@{Name=$_.key;Size=[double]$_.value} } |
|
||||
Sort size -Descending |
|
||||
Select -First 10
|
||||
ForEach-Object{ [PSCustomObject]@{Name=$_.key;Size=[double]$_.value} } |
|
||||
Sort-Object size -Descending |
|
||||
Select-Object -First 10
|
||||
|
||||
$top10ByCount = $r.extension |
|
||||
Group |
|
||||
Sort count -Descending |
|
||||
Select -First 10 Name, count
|
||||
Group-Object |
|
||||
Sort-Object count -Descending |
|
||||
Select-Object -First 10 Name, count
|
||||
|
||||
$top10ByFileSize = $r |
|
||||
Sort length -Descending |
|
||||
Select -First 10 Name, @{n="Size";e={$_.Length}} #,Extension,Path
|
||||
Sort-Object length -Descending |
|
||||
Select-Object -First 10 Name, @{n="Size";e={$_.Length}} #,Extension,Path
|
||||
|
||||
|
||||
$top10BySize | Export-Excel $xlfile -WorkSheetname FileInfo -TableName ExtSize
|
||||
$top10ByCount | Export-Excel $xlfile -WorkSheetname FileInfo -StartRow 13 -TableName ExtCount
|
||||
$top10ByFileSize | Export-Excel $xlfile -WorkSheetname FileInfo -StartRow 25 -AutoSize -TableName FileSize
|
||||
|
||||
$ps = ps | ? Company
|
||||
$ps = Get-Process | Where-Object Company
|
||||
|
||||
$ps |
|
||||
sort handles -Descending |
|
||||
select -First 10 company, handles |
|
||||
Sort-Object handles -Descending |
|
||||
Select-Object -First 10 company, handles |
|
||||
Export-Excel $xlfile -WorkSheetname Handles -AutoSize -TableName Handles
|
||||
|
||||
$ps |
|
||||
sort PM -Descending |
|
||||
select -First 10 company, PM |
|
||||
Sort-Object PM -Descending |
|
||||
Select-Object -First 10 company, PM |
|
||||
Export-Excel $xlfile -WorkSheetname Handles -AutoSize -TableName PM -StartRow 13 -Show
|
||||
|
||||
BIN
Examples/Tables/testData.xlsx
Normal file
BIN
Examples/Tables/testData.xlsx
Normal file
Binary file not shown.
@@ -1,10 +1,11 @@
|
||||
ipmo .\ImportExcel.psd1 -Force
|
||||
try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {}
|
||||
|
||||
|
||||
. .\ConvertExcelToImageFile.ps1
|
||||
|
||||
$xlFileName = "C:\Temp\testPNG.xlsx"
|
||||
|
||||
rm C:\Temp\testPNG.xlsx -ErrorAction Ignore
|
||||
Remove-Item C:\Temp\testPNG.xlsx -ErrorAction Ignore
|
||||
|
||||
$range = @"
|
||||
Region,Item,Cost
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
RootModule = 'ImportExcel.psm1'
|
||||
|
||||
# Version number of this module.
|
||||
ModuleVersion = '5.0.1'
|
||||
ModuleVersion = '5.1.0'
|
||||
|
||||
# ID used to uniquely identify this module
|
||||
GUID = '60dd4136-feff-401a-ba27-a84458c57ede'
|
||||
|
||||
@@ -44,6 +44,7 @@ Begin {
|
||||
'Import-Html.ps1',
|
||||
'InferData.ps1',
|
||||
'Invoke-Sum.ps1',
|
||||
'Join-Worksheet.ps1',
|
||||
'Merge-Worksheet.ps1',
|
||||
'New-ConditionalFormattingIconSet.ps1',
|
||||
'New-ConditionalText.ps1',
|
||||
|
||||
@@ -162,20 +162,18 @@
|
||||
$diffpart = @()
|
||||
$refpart = @()
|
||||
foreach ($p in $proplist.Where({$key -ne $_}) ) {$refPart += $p ; $diffPart += "$DiffPrefix $p" }
|
||||
#Last reference column will be A if there the only one property (which might be the key), B if there are two properties, C if there are 3 etc
|
||||
$lastRefCol = [char](64 + $propList.count)
|
||||
#First difference column will be the next one (we'll trap the case of only having the key later)
|
||||
$FirstDiffCol = [char](65 + $propList.count)
|
||||
$lastRefColNo = $proplist.count
|
||||
$FirstDiffColNo = $lastRefColNo + 1
|
||||
|
||||
if ($key -ne '*') {
|
||||
$outputProps = @($key) + $refpart + $diffpart
|
||||
$outputProps = @($key) + $refpart + $diffpart
|
||||
#If we are using a single column as the key, don't duplicate it, so the last difference column will be A if there is one property, C if there are two, E if there are 3
|
||||
$lastDiffCol = [char](63 + 2 * $propList.count)
|
||||
$lastDiffColNo = (2 * $proplist.count) - 1
|
||||
}
|
||||
else {
|
||||
$outputProps = @( ) + $refpart + $diffpart
|
||||
$outputProps = @( ) + $refpart + $diffpart
|
||||
#If we not using a single column as a key all columns are duplicated so, the Last difference column will be B if there is one property, D if there are two, F if there are 3
|
||||
$lastDiffCol = [char](64 + 2 * $propList.count)
|
||||
$lastDiffColNo = (2 * $proplist.count )
|
||||
}
|
||||
|
||||
#Add RowNumber to every row
|
||||
@@ -265,12 +263,14 @@
|
||||
Set-Format -WorkSheet $ws -Range $range -BackgroundColor $ChangeBackgroundColor
|
||||
}
|
||||
elseif ( $expandedDiff[$i].side -eq "<=" ) {
|
||||
$range = "A" + ($i + 2 ) + ":" + $lastRefCol + ($i + 2 )
|
||||
$rangeR1C1 = "R[{0}]C[1]:R[{0}]C[{1}]" -f ($i + 2 ) , $lastRefColNo
|
||||
$range = [OfficeOpenXml.ExcelAddress]::TranslateFromR1C1($rangeR1C1,0,0)
|
||||
Set-Format -WorkSheet $ws -Range $range -BackgroundColor $DeleteBackgroundColor
|
||||
}
|
||||
elseif ( $expandedDiff[$i].side -eq "=>" ) {
|
||||
if ($propList.count -gt 1) {
|
||||
$range = $FirstDiffCol + ($i + 2 ) + ":" + $lastDiffCol + ($i + 2 )
|
||||
$rangeR1C1 = "R[{0}]C[{1}]:R[{0}]C[{2}]" -f ($i + 2 ) , $FirstDiffColNo , $lastDiffColNo
|
||||
$range = [OfficeOpenXml.ExcelAddress]::TranslateFromR1C1($rangeR1C1,0,0)
|
||||
Set-Format -WorkSheet $ws -Range $range -BackgroundColor $AddBackgroundColor
|
||||
}
|
||||
Set-Format -WorkSheet $ws -Range ("A" + ($i + 2 )) -BackgroundColor $AddBackgroundColor
|
||||
|
||||
2
ToDo.md
2
ToDo.md
@@ -1,7 +1,7 @@
|
||||
- [ ] Create an autocomplete for WorkSheetName param on ImportExcel
|
||||
- [ ] Add help text for parmaters which don't have it ( PivotDataToColumn , NoClobber and CellStyleSB ) in Export Excel, copy to Send-SQLDataToExcel
|
||||
- [ ] Add checks for valid worksheet names (also check pivot names, range names and table names are valid)
|
||||
- [ ] Investigate regional support for number conversion
|
||||
- [ ] Investigate regional support for number conversion & possible date conversion
|
||||
- [ ] Add help in ConvertToExcelXLSx.ps1, Copy-ExcelWorkSheet.ps1 (probably re-write copy)
|
||||
- [ ] Add Help (continued) in Get-HTMLTable.ps1, GetRange.PS1, GetExcelTable.Ps1, Import-HTML.PS1, New-ConditionalFormattingIconSet.Ps1, NewConditionalText.PS1, New-Psitem.PS1, Remove-Worksheet.ps1
|
||||
[ ] Copy parameter help from function Add-ExcelChart into New-ExcelChart.ps1
|
||||
|
||||
@@ -7,62 +7,62 @@ Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force
|
||||
if (Get-process -Name Excel,xlim -ErrorAction SilentlyContinue) { Write-Warning -Message "You need to close Excel before running the tests." ; return}
|
||||
Describe ExportExcel {
|
||||
|
||||
Context "#Example 1 # Creates and opens a file with the right number of rows and columns" {
|
||||
$path = "$env:TEMP\Test.xlsx"
|
||||
Remove-item -Path $path -ErrorAction SilentlyContinue
|
||||
$processes = Get-Process
|
||||
$propertyNames = $Processes[0].psobject.properties.name
|
||||
$rowcount = $Processes.Count
|
||||
$Processes | Export-Excel $path -show
|
||||
# Context "#Example 1 # Creates and opens a file with the right number of rows and columns" {
|
||||
# $path = "$env:TEMP\Test.xlsx"
|
||||
# Remove-item -Path $path -ErrorAction SilentlyContinue
|
||||
# $processes = Get-Process
|
||||
# $propertyNames = $Processes[0].psobject.properties.name
|
||||
# $rowcount = $Processes.Count
|
||||
# $Processes | Export-Excel $path -show
|
||||
|
||||
it "Created a new file " {
|
||||
Test-Path -Path $path -ErrorAction SilentlyContinue | Should be $true
|
||||
}
|
||||
# it "Created a new file " {
|
||||
# Test-Path -Path $path -ErrorAction SilentlyContinue | Should be $true
|
||||
# }
|
||||
|
||||
it "Started Excel to display the file " {
|
||||
Get-process -Name Excel, xlim -ErrorAction SilentlyContinue | Should not benullorempty
|
||||
}
|
||||
# it "Started Excel to display the file " {
|
||||
# Get-process -Name Excel, xlim -ErrorAction SilentlyContinue | Should not benullorempty
|
||||
# }
|
||||
|
||||
Start-Sleep -Seconds 5 ;
|
||||
# Start-Sleep -Seconds 5 ;
|
||||
|
||||
#Open-ExcelPackage with -Create is tested in Export-Excel
|
||||
#This is a test of using it with -KillExcel
|
||||
#TODO Need to test opening pre-existing file with no -create switch (and graceful failure when file does not exist) somewhere else
|
||||
$Excel = Open-ExcelPackage -Path $path -KillExcel
|
||||
it "Killed Excel when Open-Excelpackage was told to " {
|
||||
Get-process -Name Excel, xlim -ErrorAction SilentlyContinue | Should benullorempty
|
||||
}
|
||||
# #Open-ExcelPackage with -Create is tested in Export-Excel
|
||||
# #This is a test of using it with -KillExcel
|
||||
# #TODO Need to test opening pre-existing file with no -create switch (and graceful failure when file does not exist) somewhere else
|
||||
# $Excel = Open-ExcelPackage -Path $path -KillExcel
|
||||
# it "Killed Excel when Open-Excelpackage was told to " {
|
||||
# Get-process -Name Excel, xlim -ErrorAction SilentlyContinue | Should benullorempty
|
||||
# }
|
||||
|
||||
it "Created 1 worksheet " {
|
||||
$Excel.Workbook.Worksheets.count | Should be 1
|
||||
}
|
||||
# it "Created 1 worksheet " {
|
||||
# $Excel.Workbook.Worksheets.count | Should be 1
|
||||
# }
|
||||
|
||||
$ws = $Excel.Workbook.Worksheets[1]
|
||||
it "Created the worksheet with the expected name, number of rows and number of columns " {
|
||||
$ws.Name | Should be "sheet1"
|
||||
$ws.Dimension.Columns | Should be $propertyNames.Count
|
||||
$ws.Dimension.Rows | Should be ($rowcount + 1)
|
||||
}
|
||||
# $ws = $Excel.Workbook.Worksheets[1]
|
||||
# it "Created the worksheet with the expected name, number of rows and number of columns " {
|
||||
# $ws.Name | Should be "sheet1"
|
||||
# $ws.Dimension.Columns | Should be $propertyNames.Count
|
||||
# $ws.Dimension.Rows | Should be ($rowcount + 1)
|
||||
# }
|
||||
|
||||
$headingNames = $ws.cells["1:1"].Value
|
||||
it "Created the worksheet with the correct header names " {
|
||||
foreach ($p in $propertyNames) {
|
||||
$headingnames -contains $p | Should be $true
|
||||
}
|
||||
}
|
||||
# $headingNames = $ws.cells["1:1"].Value
|
||||
# it "Created the worksheet with the correct header names " {
|
||||
# foreach ($p in $propertyNames) {
|
||||
# $headingnames -contains $p | Should be $true
|
||||
# }
|
||||
# }
|
||||
|
||||
it "Formatted the process StartTime field as 'local short date' " {
|
||||
$STHeader = $ws.cells["1:1"].where( {$_.Value -eq "StartTime"})[0]
|
||||
$STCell = $STHeader.Address -replace '1$', '2'
|
||||
$ws.cells[$stcell].Style.Numberformat.NumFmtID | Should be 22
|
||||
}
|
||||
# it "Formatted the process StartTime field as 'local short date' " {
|
||||
# $STHeader = $ws.cells["1:1"].where( {$_.Value -eq "StartTime"})[0]
|
||||
# $STCell = $STHeader.Address -replace '1$', '2'
|
||||
# $ws.cells[$stcell].Style.Numberformat.NumFmtID | Should be 22
|
||||
# }
|
||||
|
||||
it "Formatted the process ID field as 'General' " {
|
||||
$IDHeader = $ws.cells["1:1"].where( {$_.Value -eq "ID"})[0]
|
||||
$IDCell = $IDHeader.Address -replace '1$', '2'
|
||||
$ws.cells[$IDcell].Style.Numberformat.NumFmtID | Should be 0
|
||||
}
|
||||
}
|
||||
# it "Formatted the process ID field as 'General' " {
|
||||
# $IDHeader = $ws.cells["1:1"].where( {$_.Value -eq "ID"})[0]
|
||||
# $IDCell = $IDHeader.Address -replace '1$', '2'
|
||||
# $ws.cells[$IDcell].Style.Numberformat.NumFmtID | Should be 0
|
||||
# }
|
||||
# }
|
||||
|
||||
Context " # NoAliasOrScriptPropeties -ExcludeProperty and -DisplayPropertySet work" {
|
||||
$path = "$env:TEMP\Test.xlsx"
|
||||
@@ -408,7 +408,7 @@ Describe ExportExcel {
|
||||
$PTws.PivotTables.Count | Should be 1
|
||||
$Excel.Workbook.Worksheets["Processes"] | Should not beNullOrEmpty
|
||||
$Excel.Workbook.Worksheets.Count | Should beGreaterThan 2
|
||||
$excel.Workbook.Worksheets["Processes"].Dimension.rows | Should be 51 #50 data + 1 header
|
||||
# $excel.Workbook.Worksheets["Processes"].Dimension.rows | Should be 51 #50 data + 1 header
|
||||
}
|
||||
$pt = $PTws.PivotTables[0]
|
||||
it "Built the expected Pivot table " {
|
||||
@@ -438,9 +438,9 @@ Describe ExportExcel {
|
||||
$pt = $Excel.Workbook.Worksheets["ProcessesPivotTable"].PivotTables[0]
|
||||
it "Appended to the Worksheet and Extended the Pivot table " {
|
||||
$Excel.Workbook.Worksheets.Count | Should be $wCount
|
||||
$excel.Workbook.Worksheets["Processes"].Dimension.rows | Should be 101 #appended 50 rows to the previous total
|
||||
$pt.CacheDefinition.CacheDefinitionXml.pivotCacheDefinition.cacheSource.worksheetSource.ref |
|
||||
Should be "A1:E101"
|
||||
# $excel.Workbook.Worksheets["Processes"].Dimension.rows | Should be 101 #appended 50 rows to the previous total
|
||||
# $pt.CacheDefinition.CacheDefinitionXml.pivotCacheDefinition.cacheSource.worksheetSource.ref |
|
||||
# Should be "A1:E101"
|
||||
}
|
||||
it "Generated a message on extending the Pivot table " {
|
||||
$warnVar | Should not beNullOrEmpty
|
||||
|
||||
Reference in New Issue
Block a user