在将 Excel 转换为 csv 文件后,我尝试使用 Import-csv 导入 csv 文件。我收到以下错误。
Import-Csv : Cannot process argument because the value of argument "name" is invalid. Change the value of the "name" argument and run the operation again.
这是我用来将 xls 文件转换为 csv 并尝试在命令提示符下导入 csv 文件的脚本
$dst="O:\UserCert\target\"
$Excel = New-Object -Com Excel.Application
$Excel.visible = $False
$Excel.displayalerts=$False
foreach ($file in gci "O:\UserCert\*.xls"){
$wb = $excel.Workbooks.Open($file.fullname)
$wb.SaveAs($dst + $file.Basename + ".csv",6)
$wb.Close($true)
}
$excel.Quit()
我在转换过程中是否犯了 Import-csv
无法理解的错误?
最佳答案
我在使用 Import-Csv
时有时会遇到这种情况。
事实证明,将 .xlsx 保存为 .csv 时出现转换问题。
要修复它,而不是使用:
- 文件
- 另存为
- CSV(逗号分隔)(*.csv)
我执行以下操作:
- 启动新的 Excel 实例
- 复制我的 Excel 电子表格的内容
- 粘贴将内容粘贴到新的空白 Excel 文档中
- 另存为 CSV(逗号分隔)(*.csv)
这样做的原因是,当我们执行“复制粘贴”时,我们实际上只复制具有实际内容的单元格,而“另存为”也会导出空列和行。
通过比较工作 CSV 和非工作 CSV,我们可以看到,在我的例子中,还创建了两个额外的列和一些空行(曾经有内容的可能是空列 )。
因此,另一个解决方案是删除内容附近的空列和行,然后照常使用保存。或者,编辑 CSV 文件并删除每行的两个空列。
关于powershell - 无法使用 Import-Csv 导入 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17223954/