我使用powershell打开两个excel工作簿并将数据从一个复制到另一个,我导入的数据包含文本和数字数据。导入后,所有内容都被视为文本。 我有两列:A和B. A具有以下内容:01234567应转换为1234567 B具有以下内容:01234567.05应转换为1234567.05
当然我可以手动执行"转换为数字"功能,但此导入自动完成,因此无需执行手动操作。 (手动执行此操作的另一种方法是使用文本到列)
这不起作用,甚至不能手动,如果我尝试使用格式化功能进行转换,它没有做任何事情 工作表(" Sheet1")。范围(" A2:A5000")。NumberFormat =" 0000000"
答案 0 :(得分:0)
在Powershell中,有几种方法可以转换为整数。 (Powershell没有数据类型编号)
$myInt = [int]"4527427"
$myInt = [int]::Parse("4527427")
$myInt = [System.Convert]::ToInt32("4527427")
答案 1 :(得分:0)
$csvData = @"
A,B
01234567, 01234567.05
-123, 00045.06
"@
# Or Import-Csv <yourpath> -delimiter <yourdelimiter> in your case
$csv = ConvertFrom-Csv $csvData -delimiter ','
Write-Host ""
Write-Host "Before conversion"
$csv
Write-Host ""
Write-Host "After conversion"
# Or Import-Csv <yourpath> -delimiter <yourdelimiter> | %{ etc... in your case
$csv = ConvertFrom-Csv $csvData -Delimiter ',' | %{
new-object PSObject -prop @{
A = [int] ($_.A);
B = [double] ($_.B);
}
}
$csv