【发布时间】:2020-04-30 15:39:53
【问题描述】:
Hi 试图从 Excel 文件中获取数据并使用 powershell 将其保存为 CSV。我需要将 B 列作为第二行 D 列中的标题和值。我有 53 行。
Excel 文件的屏幕截图
我编写了以下 powershell 代码,该代码保存为 CSV 文件,但编码不正确。当我使用 terraform csvcode 时,它会抛出错误。
$strPath = "C:\project.xlsx"
$AssetInv = "C:\project.txt"
$AssetInvcsv = "C:\project.csv"
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $false
$WorkBook = $objExcel.Workbooks.Open($strPath)
$worksheet = $workbook.sheets.item("Sheet1")
$c = 2
for ($r = 3; $r -le 53; $r++)
{
$Data = 0
$Data = $worksheet.Cells.Item($r, $c).Value2
$Data1= [string]$Data
$Data1 + "," | Out-File -filepath $AssetInv -append -NoNewline -Encoding utf8
}
$c = 4
for ($r = 3; $r -le 53; $r++)
{
$Data = 0
$Data = $worksheet.Cells.Item($r, $c).Value2
$Data1= [string]$Data
$Data1 + "," | Out-File -filepath $AssetInv -append -NoNewline -Encoding utf8
}
$objExcel.quit()
我可以通过将文件另存为 TXT 文件,然后再次导入和导出为 CSV 来更正此问题。我不想将其保存为 txt 并再次导入和导出为 CSV。我该怎么做?
import-csv $AssetInv -delimiter "," | export-csv $AssetInvcsv -NoTypeInformation
【问题讨论】:
标签: powershell