Как отсортировать определенный столбец AZ в Powershell? - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть сценарий PowerShell, который преобразует файл .csv в .xlsx, но теперь у меня есть дополнительное требование - отсортировать (от низшего к наивысшему) определенный столбец в файле. Колонка «G». Есть предложения?

Мой существующий код ниже.

Function conversion($inputCSV,$outputXLSX)
{


    ### Create a new Excel Workbook with one empty sheet
    $excel = New-Object -ComObject excel.application 
    $workbook = $excel.Workbooks.Add(1)
    $worksheet = $workbook.worksheets.Item(1)


    ### Build the QueryTables.Add command
    ### QueryTables does the same as when clicking "Data » From Text" in Excel
    $TxtConnector = ("TEXT;" + $inputCSV)
    $Connector =$worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1"))

    $query = $worksheet.QueryTables.item($Connector.name)

    ### Set the delimiter (, or ;) according to your regional settings
    $query.TextFileOtherDelimiter = $Excel.Application.International(5)

    ### Set the format to delimited and text for every column
    ### A trick to create an array of 2s is used with the preceding comma
    $query.TextFileParseType  = 1
    $query.TextFileColumnDataTypes = ,2 * $worksheet.Cells.Columns.Count
    $query.AdjustColumnWidth = 1

    ### Execute & delete the import query
    $query.Refresh()
    $query.Delete()



    ### Save & close the Workbook as XLSX. Change the output extension for Excel 2003
    $Workbook.SaveAs($outputXLSX,51)
    $excel.Quit()
}

$inputCSV= "C:\Users\Desktop\Book2.csv"
$outputXLSX = "C:\Users\Desktop\Book2_sorted.xlsx"

conversion $inputCSV,$outputXLSX

1 Ответ

0 голосов
/ 08 февраля 2019

Рекомендую вашему вниманию информацию, которую можно получить, введя Get-Help -Name Sort-Object -Full.Предполагая, что для целей обсуждения в вашем столбце G есть заголовок «G» в CSV-файле, вам понадобится некоторый код в виде строк

Import-CSV -Path $inputcsv | Sort-Object -Property G | Export-CSV -Append -Path $sortedcsv -NoTypeInformation

, а затем передайте $ sortedcsv в свою книгустроительная рутина.

...