Modules/Private/3.ReportingFunctions/StyleFunctions/Build-ARIExcelinitialBlock.ps1
<#
.Synopsis Module for Initial Block in Excel Report .DESCRIPTION This script creates the initial block with metadata and summary information in the Excel report. .Link https://github.com/microsoft/ARI/Modules/Private/3.ReportingFunctions/StyleFunctions/Build-ARIExcelinitialBlock.ps1 .COMPONENT This PowerShell Module is part of Azure Resource Inventory (ARI) .NOTES Version: 3.6.0 First Release Date: 15th Oct, 2024 Authors: Claudio Merola #> function Build-ARIInitialBlock { Param($Excel, $ExtractionRunTime, $ProcessingRunTime, $ReportingRunTime, $PlatOS, $ScriptVersion, $TotalRes, $Debug) if ($Debug.IsPresent) { $DebugPreference = 'Continue' $ErrorActionPreference = 'Continue' } else { $ErrorActionPreference = "silentlycontinue" } $Date = (get-date -Format "MM/dd/yyyy") $Font = 'Segoe UI' $ExtractTime = if($ExtractionRunTime.Elapsed.Totalminutes -lt 1){($ExtractionRunTime.Elapsed.Seconds.ToString()+' Seconds')}else{($ExtractionRunTime.Elapsed.Totalminutes.ToString('#######.##')+' Minutes')} $ProcessingTime = if($ProcessingRunTime.Elapsed.Totalminutes -lt 1){($ProcessingRunTime.Elapsed.Seconds.ToString()+' Seconds')}else{($ProcessingRunTime.Elapsed.Totalminutes.ToString('#######.##')+' Minutes')} $ReportTime = if($ReportingRunTime.Elapsed.Totalminutes -lt 1){($ReportingRunTime.Elapsed.Seconds.ToString()+' Seconds')}else{($ReportingRunTime.Elapsed.Totalminutes.ToString('#######.##')+' Minutes')} $User = (get-azcontext -WarningAction SilentlyContinue -InformationAction SilentlyContinue | Select-Object -Property Account -Unique).Account.Id $WS = $Excel.Workbook.Worksheets | Where-Object { $_.Name -eq 'Overview' } $cell = $WS.Cells | Where-Object {$_.Address -like 'A*' -and $_.Address -notin 'A1','A2','A3','A4','A5','A6'} foreach ($item in $cell) { $Works = $Item.Text $Link = New-Object -TypeName OfficeOpenXml.ExcelHyperLink ("'"+$Works+"'"+'!A1'),$Works $Item.Hyperlink = $Link } Write-Debug ((get-date -Format 'yyyy-MM-dd_HH_mm_ss')+' - '+'Creating Overall Panel.') $Egg = $WS.Cells | Where-Object {$_.Address -eq 'BR75'} $Egg.AddComment('Created with a lot of effort and hard work, we hope you enjoy it.','.') | Out-Null $Egg = $WS.Cells | Where-Object {$_.Address -eq 'BR76'} $Egg.AddComment('By: Claudio Merola and Renato Gregio','.') | Out-Null $TabDraw = $WS.Drawings.AddShape('TP0', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 52, 0) $TabDraw.TextAlignment = 'Center' $TabDraw = $WS.Drawings.AddShape('TP1', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 55, 0) $TabDraw.TextAlignment = 'Center' $TabDraw = $WS.Drawings.AddShape('TP2', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 58, 0) $TabDraw.TextAlignment = 'Center' $TabDraw = $WS.Drawings.AddShape('TP3', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 61, 0) $TabDraw.TextAlignment = 'Center' $TabDraw = $WS.Drawings.AddShape('TP4', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 64, 0) $TabDraw.TextAlignment = 'Center' $TabDraw = $WS.Drawings.AddShape('TP5', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 67, 0) $TabDraw.TextAlignment = 'Center' $TabDraw = $WS.Drawings.AddShape('TP6', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 70, 0) $TabDraw.TextAlignment = 'Center' $TabDraw = $WS.Drawings.AddShape('TP7', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 73, 0) $TabDraw.TextAlignment = 'Center' $TabDraw = $WS.Drawings.AddShape('TP8', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 76, 0) $TabDraw.TextAlignment = 'Center' $TabDraw = $WS.Drawings.AddShape('TP9', 'RoundRect') $TabDraw.SetSize(125, 25) $TabDraw.SetPosition(0, 10, 79, 0) $TabDraw.TextAlignment = 'Center' $Draw = $WS.Drawings.AddShape('ARI', 'RoundRect') $Draw.SetSize(445, 240) $Draw.SetPosition(1, 0, 2, 5) $txt = $Draw.RichText.Add('Azure Resource Inventory ' + $ScriptVersion + "`n") $txt.Size = 14 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add('https://github.com/microsoft/ARI' + "`n" + "`n") $txt.Size = 11 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add('Report Date: ') $txt.Size = 11 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add($Date + "`n") $txt.Size = 12 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add('Data Gathering Time: ') $txt.Size = 11 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add($ExtractTime + "`n") $txt.Size = 12 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add('Data Processing Time: ') $txt.Size = 11 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add($ProcessingTime + "`n") $txt.Size = 12 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add('Data Reporting Time: ') $txt.Size = 11 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add($ReportTime + "`n") $txt.Size = 12 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add('User Session: ') $txt.Size = 11 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add($User + "`n") $txt.Size = 12 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add('Environment: ') $txt.Size = 11 $txt.ComplexFont = $Font $txt.LatinFont = $Font $txt = $Draw.RichText.Add($PlatOS) $txt.Size = 12 $txt.ComplexFont = $Font $txt.LatinFont = $Font $Draw.TextAlignment = 'Center' $RGD = $WS.Drawings.AddShape('RGs', 'RoundRect') $RGD.SetSize(124, 115) $RGD.SetPosition(21, 5, 9, 5) $RGD.TextAlignment = 'Center' $RGD.RichText.Add('Total Resources' + "`n").Size = 12 $RGD.RichText.Add($TotalRes).Size = 22 } |