我在 Powershell Excel ComObject 中遇到了一个问题,即无法接受逗号
,
以外的定界符。一些外部 .csv 文件使用不同的分隔符,例如分号 ;
、管道符 |
等等。
所以,有没有解决办法使其接受自定义分隔符?我尝试使用 Import-Csv $fileloop -Delimiter ';'
,它可以工作。但我希望继续使用 -ComObject 进行处理,因为我的脚本都是使用 ComObject 编写的,并且我需要解析和检查列和行以及一些额外的功能。
下面是打开 .csv 文件以进行进一步处理的相关代码片段:
$path = "C:\Users\1.csv"
$objexcel = New-Object -ComObject Excel.Application
$workbook = $objexcel.Workbook.Open($path)
$worksheet = $workbook.activesheet
$colMax = ($WorkSheet.UsedRange.Columns).count
$intcolMax = $colMax
$intRowMax = ($WorkSheet.UsedRange.Rows).count
.....
我研究了一些相关主题并进行了测试,但它们都没有起作用:
测试结果:
1. 脚本需要具有高可移植性,这意味着脚本将传递给其他用户使用,因此需要避免在 Windows 的区域和语言设置上使用设置方法。
2. 脚本需要处理大量的大型 .csv 文件,因此需要避免使用类似于 Import-Csv $fileloop -Delimiter ';'| Export-Csv $commadelimiteroutput -Delimiter ','
的方法来重建一个新的逗号分隔的 .csv 文件,然后再使用 ComObject 进行处理。
如果缺少信息或不清楚,请告诉我。