function Export-TSToExcel
{
param (
[Parameter(ParameterSetName="FromXml", Mandatory)]
[ValidateNotNullOrEmpty()]
[xml] $Xml,
[Parameter(ParameterSetName="FromXmlPath", Mandatory)]
[ValidateNotNullOrEmpty()]
[System.IO.FileInfo] $XmlPath,
[Parameter(ParameterSetName="FromTaskSequence", Mandatory, ValueFromPipeline)]
[ValidateNotNullOrEmpty()]
[object] $TaskSequence,
[Parameter(ParameterSetName="FromTaskSequence")]
[Parameter(ParameterSetName="FromXml")]
[Parameter(ParameterSetName="FromXmlPath")]
[System.IO.FileInfo] $ExportPath,
[Parameter(ParameterSetName="FromXml")]
[Parameter(ParameterSetName="FromXmlPath")]
[string] $TSName = "Task Sequence",
[Parameter(ParameterSetName="FromTaskSequence")]
[Parameter(ParameterSetName="FromXml")]
[Parameter(ParameterSetName="FromXmlPath")]
[switch] $Show,
[Parameter(ParameterSetName="FromTaskSequence")]
[Parameter(ParameterSetName="FromXml")]
[Parameter(ParameterSetName="FromXmlPath")]
[switch] $Macro,
[Parameter(ParameterSetName="FromTaskSequence")]
[Parameter(ParameterSetName="FromXml")]
[Parameter(ParameterSetName="FromXmlPath")]
[switch] $Outline,
[Parameter(ParameterSetName="FromTaskSequence")]
[Parameter(ParameterSetName="FromXml")]
[Parameter(ParameterSetName="FromXmlPath")]
[switch] $HideProgress
)
try