Bonjour,
Je n'ai pas trouvé comment faire pour dire que les colonnes sont au format numérique et pas au format texte
quand je passe la commande suivante :
ça passe bien les cellules au format number mais elles ne sont pas mises à jour et quand j'essaie de refaire un : $Query.refresh() ça me remet les anciennes valeurs et me remet les cellules en texte
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part $worksheet.Cells.NumberFormat = "0,00"
Pour mettre à jour je double clic dans une cellule Excel (où se trouve une valeur) et je fais "entrée" et la valeurs se met à jour !
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
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 $CSVs = Get-ChildItem *.csv $excel = New-Object -ComObject excel.application $excel.visible = $true $excel.SheetsInNewWorkbook = $CSVs.Count $workbook = $excel.Workbooks.Add() for ($i=0; $i -lt $CSVs.Count; $i++){ $csv = Get-Item $CSVs[$i] $worksheet = $workbook.worksheets.Item($i + 1) # $worksheet.Name = $csv.basename $TxtConnector = ("TEXT;" + $csv.fullname) $Connector = $worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1")) $query = $worksheet.QueryTables.item($Connector.name) $query.HasAutoFormat = $true $query.TextFilePlatform = 65001 $query.TextFileTextQualifier = 1 $query.TextFileOtherDelimiter = $Excel.Application.International(3) $query.TextFileParseType = 1 $arrFormats = ,2 * $worksheet.Cells.Columns.Count $query.TextFileColumnDataTypes = $arrFormats $query.AdjustColumnWidth = 1 $query.Refresh() $worksheet.Cells.NumberFormat = "0,00" $query.Delete() }
La propertie $Query.HasAutoFormat ne fait pas grand chose
Avez-vous une idée ?
Partager