Хотя я не знаю, почему вы хотите повернуть значения в одном из столбцов, вот как вы можете сделать это без необходимости в Excel.
Из ваших комментариев я собираю файл CSVне имеет заголовков и содержит только строки данных.Из-за этого при импорте данных добавляются заголовки:
Предположим, ваш CSV-файл выглядит следующим образом:
Clothing Rental,Chicago Illinois,1,25
Clothing Purchase,Dallas Texas,2,35
Clothing Free of Charge,Phoenix Arizona,3,45
Тогда следующее должно делать то, что вы хотите:
$data = Import-Csv -Path 'D:\yourdata.csv' -Header 'Stuff','City','Number','InStock' # or add whatever headers you like
# get the first column as array of values
$column1 = $data.Stuff
# rotate the array values
switch ($column1.Count) {
1 { Write-Host "Nothing to do here. There is only one row of data.."; break}
2 {
# swap the values
$data[0].Stuff,$data[1].Stuff = $data[1].Stuff,$data[0].Stuff
break
}
default {
$newColumn1 = @($column1[-1]; $column1[0..($column1.Count -2)])
# re-write the first column in the data
for ($i = 0; $i -lt $newColumn1.Count; $i++) {
$data[$i].Stuff = $newColumn1[$i]
}
}
}
# output on screen
$data
# output to new CSV file WITH headers
$data | Export-Csv -Path 'D:\your_rotated_data.csv' -NoTypeInformation -Force
# output to new CSV file WITHOUT headers
$data | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Set-Content -Path 'D:\your_rotated_data.csv' -Force
Вывод на экран после запуска выглядит следующим образом:
Stuff City Number InStock
----- ---- ------ -------
Clothing Free of Charge Chicago Illinois 1 25
Clothing Rental Dallas Texas 2 35
Clothing Purchase Phoenix Arizona 3 45
, и вы можете видеть все значения в первом столбце («Материал»)было повернуто, то есть последнее значение теперь находится сверху, а остальные значения сместились вниз.