Export CSV vers Excel (mettre en format numéro) ?
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 :
Code:
$worksheet.Cells.NumberFormat = "0,00"
ç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
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:
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 ?