У меня есть скрипт, который создает x количество CSV, я хочу преобразовать все CSV в папке в один файл Xlsx.
У меня есть основы циклического прохождения каждого CSV, однако он перезаписывается после окончания каждого цикла.
Я хочу добавить каждый CSV на лист в рабочей книге и сохранить его.
но он отображает только последний CSV, который он прочитал, и не показывает никаких других рабочих листов.
Я выбрал код из следующего:
Как экспортировать CSV в Excel с помощью Powershell
Как уже говорилось, я пробовал вышеизложенное; не повезло.
Function Excel-Write{
$RD = "C:\temp\Servers\*.csv"
$CsvDir = $RD
$csvs = dir -path $CsvDir
$outputxls = ""C:\temp\Servers\Complete.Xlsx"
foreach($iCsv in $csvs){
$WB = $csvs.Length
$Excel = New-Object -ComObject excel.application
#$Excel.displayAlerts = $false
$workbook = $excel.Workbooks.add(1)
$Worksheet = $workbook.worksheets.Item(1)
$Worksheet.name = $Group
$TxtConnector = ("TEXT;" + $iCsv)
$Connector = $worksheet.Querytables.add($txtconnector,$worksheet.Range("A1"))
$query = $Worksheet.QueryTables.item($Connector.name)
$query.TextfileOtherDelimiter = $Excel.Application.International(5)
$Query.TextfileParseType =1
$Query.TextFileColumnDataTypes = ,2 * $worksheet.cells.column.count
$query.AdjustColumnWidth =1
$Query.Refresh()
$Query.Delete()
$workbook.Save()
}
$Workbook.SaveAs($outputxls,51)
$Excel.quit()
}
Показывает только один лист, и это последний CSV, который был прочитан, он перезаписывает другие листы.