【发布时间】:2017-06-29 08:29:29
【问题描述】:
在 CSV 文件中,我有一列中没有标题的数据,如下所示:
data1;data2;data3
data1;data2;data3
data1;data2;data3
我不知道如何通过 PowerShell 将其放在 CVS 或 XLSX 的 3 列中。 尝试了一些脚本,但结果始终相同 - 空文件或没有任何变化。
我的代码:
#Define locations and delimiter
$csv = "C:\TEMP\Loginy_Nieaktywne_temp.csv" #Location of the source file
$xlsx = "C:\TEMP\TEST.xlsx" #Desired location of output
$delimiter = ";" #Specify the delimiter used in the file
# 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 and reformat the data
$TxtConnector = ("TEXT;" + $csv)
$Connector = $worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1"))
$query = $worksheet.QueryTables.item($Connector.name)
$query.TextFileOtherDelimiter = $delimiter
$query.TextFileParseType = 1
$query.TextFileColumnDataTypes = ,1 * $worksheet.Cells.Columns.Count
$query.AdjustColumnWidth = 1
# Execute & delete the import query
$query.Refresh()
$query.Delete()
# Save & close the Workbook as XLSX.
$Workbook.SaveAs($xlsx,51)
$excel.Quit()
编辑
Import-Csv path/to/myfile.csv -Delimiter ";" | Export-Csv path/to/outputfile.csv
这对我不起作用,没有任何改变。我试过了,但在 Excel 中它们仍然在一列中。
【问题讨论】:
-
你能告诉我们一些你试过的脚本吗?
-
您已经有 3 列(它们用分号分隔)。请退后一步,描述您面临的实际问题。您在将其导入 Excel 时遇到问题吗?
-
尝试
$query.TextFileSemicolonDelimiter = $true而不是$query.TextFileOtherDelimiter = $delimiter。 See also. -
不幸的是,不起作用..
标签: excel powershell csv