You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell将CSV转换为XLSX时遇文件损坏问题求助

解决PowerShell转CSV为XLSX时文件损坏的问题

问题出在这几个关键点上,对应修改即可解决:

  • 保存格式参数错误:你用的1是XLS格式的枚举值,要生成XLSX格式必须用51(对应Open XML工作簿格式)
  • 中文引号异常:代码里的中文双引号(“”)会导致PowerShell解析出错,全部替换为英文双引号("")
  • 变量笔误:$Worksheets = $Workbooks.worksheets里的$Workbooks是拼写错误,应该是$Workbook(单数,因为当前只打开了一个工作簿)
  • 建议清理COM对象:避免Excel进程在后台残留占用资源

修正后的完整代码:

$xl = New-Object -ComObject Excel.Application
$xl.Visible = $true
$Workbook = $xl.Workbooks.Open("c:\sdk\AdEmployeeNumber.csv")
# 修正变量名笔误
$Worksheets = $Workbook.Worksheets
# 使用51作为XLSX格式参数,文件名用英文双引号
$Workbook.SaveAs("c:\sdk\AdEmployeeNumber.xlsx", 51)
$Workbook.Saved = $true
$xl.Quit()

# 清理COM对象,防止Excel进程残留
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Worksheets) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Workbook) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl) | Out-Null
Remove-Variable xl, Workbook, Worksheets

补充说明:

  • Excel的SaveAs格式枚举值常用的有:51=XLSX、52=XLSM、56=XLS
  • 如果不需要显示Excel界面,可以把$xl.Visible = $true改为$false,后台执行更高效

内容的提问来源于stack exchange,提问作者lakeek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:01:55