Export-StocksToExcel.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function Export-StocksToExcel {
    param(
        [string]$symbols,
        [ValidateSet("Open", "High", "Low", "Close", "Volume")]
        $measure = "Open"
    )

    $xl = "$env:TEMP\Stocks.xlsx"

    Remove-Item $xl -ErrorAction SilentlyContinue

    $r = Invoke-RestMethod "https://azfnstockdata-fn83fffd32.azurewebsites.net/api/GetQuoteChart?symbol=$($symbols)"

    $chartColumn = $symbols.Split(',').count + 2
    $ptd = New-PivotTableDefinition `
        -SourceWorkSheet Sheet1 `
        -PivotTableName result `
        -PivotData @{$measure = 'sum'} `
        -PivotRows date `
        -PivotColumns symbol `
        -ChartType Line `
        -ChartTitle "Stock - $measure " `
        -IncludePivotChart -NoTotalsInPivot -ChartColumn $chartColumn -ChartRow 3 -Activate

    $r | Sort-Object Date, symbol | Export-Excel $xl -PivotTableDefinition $ptd -AutoSize -AutoFilter -Show
}

# Export-StocksToExcel -symbols 'ibm,aapl,msft' -measure High