wie*_*rob 7 csv excel powershell xls
我正在尝试使用以下powershell脚本将多个Excel文件(xls)转换为csv:
$excel = new-object -ComObject "Excel.Application"
$excel.DisplayAlerts=$True
$excel.Visible =$false
foreach ($file in get-childitem $src_dir) {
$wb = $excel.Workbooks.Open($file.FullName)
$wb.SaveAs($dst_dir + $file.Name + ".csv", 6)# 6 -> csv
$wb.Close($True)
}
$excel.Quit()
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
Run Code Online (Sandbox Code Playgroud)
原则上这有效,例如我得到csv文件.但是,对于一些文件(每次运行不同),我得到一个例外:
Exception calling "SaveAs" with "2" argument(s): "Microsoft Office Excel cannot access the file 'C:\Users\...\AppData\Local\Temp'. ...
Run Code Online (Sandbox Code Playgroud)
另外,我收到一个消息框,询问我是否要将更改保存到源xls.
一旦我调用SaveAs,$ wb就会引用新文件.那么如何保存或放弃对源文件的更改?为什么这只发生在几个文件中?这个脚本还有其他问题吗?
更新
我将输入文件(大约200)任意划分(即不知道组的大小)为10组,并在自己的运行中处理每个组.这样做有点不方便.
提前致谢