Exportez 2 files CVS sur 1 feuille de calcul Excel et un autre file CSV vers le même classur mais une feuille différente

J'essaie d'accomplir cette tâche ci-dessous. J'ai cherché et trouvé un code que quelqu'un d'autre a partagé, ce qui semble fonctionner simplement en sauvegardant chaque file CVS sur sa feuille de calcul. Voici donc ce que j'essaie de faire:

Avoir 3 files CSV que j'ai créés à partir de résultats SQL via PowerShell. Je veux prendre les 3 premiers files CSV et les copyr sur 1 feuille de calcul sur un .xslx puis je souhaite prendre le 3ème file CSV et le copyr dans le même classur, mais la feuille de calcul 2. Je souhaite également formater datatables avec l'set les colors sur l'en-tête et le pied de page, mais conditionnellement sur datatables sur chaque ligne entre les deux.

Voici le code que j'ai jusqu'ici:

param ( [ssortingng]$InputPath = "C:\Users\bry30794\Documents\PS_Test", [ssortingng]$OutputPath = "C:\Users\bry30794\Documents\PS_Test", [ssortingng]$OutputFile = "test.xlsx" ) $Excel = New-Object -Com Excel.Application $Excel.Visible = $False $Excel.DisplayAlerts = $False $Workbook = $Excel.Workbooks.Add() # add 2 additional worksheets $Workbook.Worksheets.Add() | Out-Null $Workbook.Worksheets.Add() | Out-Null ################################################## # Performance_Overall ################################################## #Use the first worksheet in the workbook $Worksheet = $Workbook.Worksheets.Item(1) #Set name $Worksheet.Name = "Performance_Overall" $csvFileNameWithPath = "$($InputPath)\test1.csv" $Tempcsv = $Excel.Workbooks.Open($csvFileNameWithPath) $Tempsheet = $Tempcsv.Worksheets.Item(1) #Copy contents of the CSV file $Tempsheet.UsedRange.Copy() | Out-Null #Paste contents of CSV into existing workbook $Worksheet.Paste() #Close temp workbook $Tempcsv.Close() #Select all used cells $Range = $Worksheet.UsedRange #Autofit the columns $Range.EntireColumn.Autofit() | Out-Null ##[void]$ws.Range("A8").PasteSpecial(-4163) ################################################## # add second view - Performance_by_Region ################################################## $Worksheet = $Workbook.Worksheets.Item(2) $Worksheet.Name = "Performance_by_Region" $csvFileNameWithPath = "$($InputPath)\test2.csv" $Tempcsv = $Excel.Workbooks.Open($csvFileNameWithPath) $Tempsheet = $Tempcsv.Worksheets.Item(1) $Tempsheet.UsedRange.Copy() | Out-Null $Worksheet.Paste() $Tempcsv.Close() $Range = $Worksheet.UsedRange $Range.EntireColumn.Autofit() | Out-Null ################################################## # add third view - Performance_by_Category ################################################## $Worksheet = $Workbook.Worksheets.Item(3) $Worksheet.Name = "Performance_by_Category" $csvFileNameWithPath = "$($InputPath)\test3.csv" $Tempcsv = $Excel.Workbooks.Open($csvFileNameWithPath) $Tempsheet = $Tempcsv.Worksheets.Item(1) $Tempsheet.UsedRange.Copy() | Out-Null $Worksheet.Paste() $Tempcsv.Close() $Range = $Worksheet.UsedRange $Range.EntireColumn.Autofit() | Out-Null ################################################## # last step - select the sheet that should be shown when # file is opened in excel ################################################## $ObjWorksheet = $WorkBook.Worksheets.Item(1) [void] $ObjWorksheet.Activate() ################################################## # save ################################################## $outputFileNameWithPath = "$($OutputPath)\$($OutputFile)" $Workbook.SaveAs($outputFileNameWithPath, 51) # saved as xlsx file $Excel.Quit() 

Voici les captures d'écran du dernier classur que je veux:

Capture d'écran 1:

Exemple d'image finale du classeur 1

Capture d'écran 2:

Exemple d'image finale du classeur 2

Je veux la couleur rouge si une valeur est supérieure à 0 dans ces colonnes

16 à 20 21 à 25 26 à 30 ans Plus de 30 ans

 $LastRow = $serverInfoSheet.UsedRange.rows.count Write-Output $LastRow $serverInfoSheet.Cells.Item($LastRow,$Column).Interior.ColorIndex = 15 $Column++ $serverInfoSheet.Cells.Item($LastRow,$Column).Interior.ColorIndex = 15 $Column++ $serverInfoSheet.Cells.Item($LastRow,$Column).Interior.ColorIndex = 15 $Column++ $serverInfoSheet.Cells.Item($LastRow,$Column).Interior.ColorIndex = 15 $Column++ $serverInfoSheet.Cells.Item($LastRow,$Column).Interior.ColorIndex = 15 $Column++ $serverInfoSheet.Cells.Item($LastRow,$Column).Interior.ColorIndex = 15 $Column++ $serverInfoSheet.Cells.Item($LastRow,$Column).Interior.ColorIndex = 15 $Column++ $serverInfoSheet.Cells.Item($LastRow,$Column).Interior.ColorIndex = 15 $Column++ $serverInfoSheet.Cells.Item($LastRow,$Column).Interior.ColorIndex = 15