Public/ReleaseNotes/ExportExcel/Export-ExcelRelations.ps1
function Export-ExcelRelations { <# .SYNOPSIS Exports the Relations subset. .PARAMETER ExportData Export data prepared by ConvertTo-ExportData. .PARAMETER ExcelPackage Package to add the worksheet to. #> [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute( 'PSUseSingularNouns', '', Justification = '' )] [CmdletBinding(DefaultParameterSetName = 'List')] param( [PSTypeName('PSTypeNames.AzureDevOpsApi.ExportData')] [Parameter(Mandatory, Position = 1)] [Alias('Data')] $ExportData, [Alias('WorkBook', 'Excel', 'Package')] $ExcelPackage, $Styles ) process { # add new sheet to hold the data $worksheet = ImportExcel\Add-Worksheet ` -ExcelPackage $excelPackage ` -WorksheetName Relations # list of properties we want to export $properties = @( 'A.WorkItemId', 'A.WorkItemType', 'A.RelationName', 'B.WorkItemId', 'B.WorkItemType' ) # set header Export-ExcelSetHeader ` -Worksheet $worksheet ` -HeaderRowStyle $Styles.Header ` -Columns $properties # write out the data $row = 1 $relations = $ExportData.Relations | Sort-Object -Property @( @{ e = { [int] $_.'A.WorkItemId' } }, @{ e = { [int] $_.'B.WorkItemId' } }, @{ e = { $_.'A.RelationName' } } ) foreach ($item in $relations) { $column = 0 $row++ # A.WorkItemId $column++ $address = Export-ExcelGetCellAddress -Row $row -Column $column $worksheet.Cells[$address].Value = $item.'A.WorkItemId' $worksheet.Cells[$address].Hyperlink = $item.'A.PortalUrl' ImportExcel\Set-ExcelRange -Worksheet $worksheet -Range $address ` -Underline:$styles.Link.Underline ` -HorizontalAlignment $styles.Link.HorizontalAlignment # A.WorkItemType $column++ $address = Export-ExcelGetCellAddress -Row $row -Column $column $worksheet.Cells[$address].Value = $item.'A.WorkItemType' # A.RelationName $column++ $address = Export-ExcelGetCellAddress -Row $row -Column $column $worksheet.Cells[$address].Value = $item.'A.RelationName' # B.WorkItemId $column++ $address = Export-ExcelGetCellAddress -Row $row -Column $column $worksheet.Cells[$address].Value = $item.'B.WorkItemId' $worksheet.Cells[$address].Hyperlink = $item.'B.PortalUrl' ImportExcel\Set-ExcelRange -Worksheet $worksheet -Range $address ` -Underline:$styles.Link.Underline ` -HorizontalAlignment $styles.Link.HorizontalAlignment # B.WorkItemType $column++ $address = Export-ExcelGetCellAddress -Row $row -Column $column $worksheet.Cells[$address].Value = $item.'B.WorkItemType' } # format columns $address = Export-ExcelGetCellAddress -Column $column ImportExcel\Set-ExcelRange -Worksheet $worksheet -Range "A:$($address)" -AutoSize } } |