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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| Function ConvertArrayToXMLExcel($DataConvert, $NameXML)
{
$sb = New-Object -TypeName "System.Text.StringBuilder"
$sb.Append('<?xml version="1.0" encoding="UTF-8"?>')
$sb.Append('<?mso-application progid="Excel.Sheet"?>')
$sb.Append('<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"'+"`r`n")
$sb.Append('xmlns:o="urn:schemas-microsoft-com:office:office"'+"`r`n")
$sb.Append('xmlns:x="urn:schemas-microsoft-com:office:excel"'+"`r`n")
$sb.Append('xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"'+"`r`n")
$sb.Append('xmlns:html="http://www.w3.org/TR/REC-html40">'+"`r`n")
$headers = $DataConvert | Get-member -MemberType 'NoteProperty' | Select-Object -ExpandProperty 'Name'
$sb.Append('<Worksheet ss:Name="out_Resultat_Tasks">'+"`r`n")
$sb.Append('<Table>'+"`r`n")
#$sb.Append('<Column ss:Index="1" ss:AutoFitWidth="0" ss:Width="230"/>'+"`r`n")
#$sb.Append('<Column ss:Index="2" ss:AutoFitWidth="0" ss:Width="80"/>'+"`r`n")
#$sb.Append('<Column ss:Index="3" ss:AutoFitWidth="0" ss:Width="100"/>'+"`r`n")
$sb.Append('<Row>'+"`r`n")
foreach($item in $headers)
{
$sb.Append('<Cell><Data ss:Type="String">' + $item + "</Data></Cell>`r`n")
}
$sb.Append('</Row>')
foreach($itemDB in $DataConvert)
{
$sb.Append('<Row>')
foreach($itemHeader in $headers)
{
$sb.Append('<Cell><Data ss:Type="String">' + $itemDB.$itemHeader + "</Data></Cell>`r`n")
}
$sb.Append('</Row>')
}
$sb.Append('</Table></Worksheet>')
$sb.Append('</Workbook>')
$sb.ToString() | Out-File .\$NameXML
}
$db = Import-Csv -Path "........\test.csv" -Encoding Default
ConvertArrayToXMLExcel -DataConvert $db -NameXML .\Test.xml |
Partager