我有一個CSV文件,我拉下來,需要每週處理。部分操作是使用適當的部門和品牌填充空白單元格,因爲它使用空單元格生成匹配條目。使用基於上面的單元格的PowerShell填充CSV空單元格空單元格
例如,單元格B34包含文本「凍結」,而單元格B35到B40爲空。單元格B41包含文本「乳製品」。我想使用PowerShell將文本「Frozen」從單元格B34複製到單元格B35到B40。
我環顧四周尋找答案,但一直沒有任何運氣。
謝謝。
編輯:
我用從wOxxOm中的代碼作爲下面的評論。
$csv = import-csv inputfilepath.csv
$prevRow = $csv[0];
foreach ($row in $csv[1..($csv.length-1)]) {
if (!$row.subCatDesc) { $row.subCatDesc = $prevRow.subCatDesc }; $prevRow = $row | export-csv outputfilepath.csv
}
其中subCatDesc是列標題。當我這樣做時,它運行良好,但輸出文件的單元格A1讀取「#TYPE System.Management.Automation.PSCustomObject」,第2行包含與源文件相同的標題,然後只有第3行是最終源文件的一行。
編輯2:
與TheIncorrigible1的輸入再次修改:
$csv = import-csv -Path inputfilepath.csv
$prevRow = $csv[1];
foreach ($row in $csv[2..($csv.length-1)]) {
if (!$row.subCatDesc) { $row.subCatDesc = $prevRow.subCatDesc }; $prevRow = $row
}
$csv | Export-Csv -Path outputfilepath.csv -NoTypeInformation
這清除了上面的問題,居然成功地完成了任務,與第一套空細胞的異常(細胞B3至B19在我的測試CSV)保持空白,而不是複製B2的內容是「奶酪」。
EDIT 3:
再次調整:
$prevRow = $csv[0]
和 的foreach {
如最初由下式給出(在$ CSV [1..csv.length-1] $行) wOxxOm解決了這個問題。謝謝大家,它現在有效。
你有沒有給它一個去了嗎?郵政編碼,以便我們提供幫助。 – gms0ulman
我還沒有,因爲我沒有從哪裏開始,也沒有找到我所找到的相關代碼片段。 – BryceJenkins
類似於$ prevRow = $ csv [0]; foreach($ row in $ csv [1 ..($ csv.length-1)]){if(!$ row.b){$ row.b = $ prevRow.b}; $ prevRow = $ row} – wOxxOm