我想创建Powershell脚本,该脚本从.xls文件创建csv文件,但我不知道如何使用Powershell Wihout VBA。
到目前为止,我有这个:
ConvertTo-Csv "C:\Users\Me\TestsShella\test.xlsx" | Out-File Q:\test\testShella.csv
但是它不起作用。
答案 0 :(得分:0)
有一个预构建的库:
https://www.powershellgallery.com/packages/ImportExcel/5.4.4
然后您将可以使用import-excel函数/ cmdlet,并且能够导入,转换为csv然后导出
答案 1 :(得分:0)
也许这可行:
rename-item -Path "C:\Users\Me\TestsShella\test.xlsx" -NewName "item.csv"
打开csv时,您会收到一条消息,但是csv的格式类似于xlsx。
答案 2 :(得分:0)
在运行的计算机上存在Excel时,将其用作COM对象:
## Q:\Test\2019\01\31\SO_54461362.ps1
$InFile = Get-Item "$($Env:USERPROFILE)\TestsShella\test.xlsx"
$OutFile= $InFile.FullName.replace($InFile.Extension,".csv")
$Excel = new-object -ComObject "Excel.Application"
$Excel.DisplayAlerts = $True
$Excel.Visible = $False # $True while testing
$WorkBook = $Excel.Workbooks.Open($InFile.FullName)
$WorkBook.SaveAs($OutFile, 6) # 6 -> type csv
$WorkBook.Close($True)
$Excel.Quit()
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)
根据语言环境(小数点/逗号),csv文件将以逗号或分号分隔。
没有安装Excel,请使用已经建议的模块ImportExcel
$InFile = Get-Item "$($Env:USERPROFILE)\TestsShella\test.xlsx"
$OutFile= $InFile.FullName.replace($InFile.Extension,".csv")
Import-Excel $Infile.FullName | Export-Csv $OutFile -NoTypeInformation
这将产生一个.csv文件,其中 all 字段用双引号引起来并用逗号分隔。