powershell - 无法使用 Import-Csv 导入 CSV 文件

标签 powershell

在将 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 时出现转换问题。

要修复它,而不是使用:

  1. 文件
  2. 另存为
  3. CSV(逗号分隔)(*.csv)

我执行以下操作:

  1. 启动新的 Excel 实例
  2. 复制我的 Excel 电子表格的内容
  3. 粘贴将内容粘贴到新的空白 Excel 文档中
  4. 另存为 CSV(逗号分隔)(*.csv)

这样做的原因是,当我们执行“复制粘贴”时,我们实际上只复制具有实际内容的单元格,而“另存为”也会导出空列和行。

通过比较工作 CSV 和非工作 CSV,我们可以看到,在我的例子中,还创建了两个额外的列和一些空行(曾经有内容的可能是空列 )。

因此,另一个解决方案是删除内容附近的空列和行,然后照常使用保存。或者,编辑 CSV 文件并删除每行的两个空列。

关于powershell - 无法使用 Import-Csv 导入 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17223954/

相关文章:

Powershell不显示RSS提要

powershell - 在 Azure 云服务上将防恶意软件设置为默认启用

powershell - Get-ADUser -Filter {displayname -like $displayname} 出现奇怪的结果

powershell - 创建使用特定事件日志条目作为触发器的计划任务

powershell - 使用 powershell 远程处理安装 Windows 10 应用程序

multithreading - 访问当前 PowerShell 实例

sql-server - 如何通过 SQL Server xp_cmdshell 在 Windows 命令 shell 中根据创建日期加载文件

regex - 是否可以将 Get-Content、ForEach-Object string -match 替换为 Select-String cmdlet?

azure - 如何使用 Powershell 7 Get-AzVMImage 获取最新版本

c# - 如何自动打印带有详细选项的pdf?