gpt4 book ai didi

csv - 将DataTable转换为CSV

转载 作者:行者123 更新时间:2023-12-03 01:13:37 26 4
gpt4 key购买 nike

我希望能够将Import-Csv放入PowerShell表中,以便可以使用PowerShell脚本编辑每个部分,例如$table.row[0].name = 100Import-Csv没有提供使用CSV文件创建的“表格”。

$tabName = "TableA"
$table = New-Object system.Data.DataTable "$tabName"
$col1 = New-Object system.Data.DataColumn ColumnName1,([string])
$col2 = New-Object system.Data.DataColumn ColumnName2,([int])
$table.columns.add($col1)
$table.columns.add($col2)
$row = $table.NewRow()
$row.ColumnName1 = "A"
$row.ColumnName2 = "1"
$table.Rows.Add($row)
$row = $table.NewRow()
$row.ColumnName1 = "B"
$row.ColumnName2 = "2"
$table.Rows.Add($row)
$table.PrimaryKey = $table.Columns[0]
$table | Export-Csv C:\test.csv

我想要一种 $table | Import-Csv C:\test.csv的方法,并且具有 $table.row[0].columnname1 = "C"的功能,它可以将“A”更改为“C”。然后,我可以在进行更改后将其重新导出。

最佳答案

您只需将表通过管道传递到DataTable cmdlet中,就可以将Export-Csv对象导出为CSV:

$table | Export-Csv C:\table.csv -NoType

但是,这样做会丢失表列的所有类型信息( Export-Csv cmdlet只能保存有关代表行的对象类型的信息,而不是有关其属性类型的信息)。

保存和还原 DataTable对象的更好方法是将表 save作为XML:
$writer = New-Object IO.StreamWriter 'C:\path\to\data.xml'
$table.WriteXml($writer, [Data.XmlWriteMode]::WriteSchema)
$writer.Close()
$writer.Dispose()

并将XML的 restore转换成 DataSet:
$ds = New-Object Data.DataSet
$ds.ReadXml('C:\path\to\data.xml', [Data.XmlReadMode]::ReadSchema)
$table = $ds.Tables[0]

确保将模式与数据一起导出和导入,因为这是存储类型信息的地方。

关于csv - 将DataTable转换为CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34518213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com