1. 前提
公司有需求批量转换大量xlsx到xls,于是写了这个脚本
2. 环境
Windows 10+ ,PowerShell 7.2+, vscode且powershell插件
3. 源码
# 设置源文件夹和目标文件夹
$sourceFolder = "源目录"
$destinationFolder = "输出目录"
# 检查并创建目标文件夹(如果不存在)
if (-not (Test-Path -Path $destinationFolder)) {
New-Item -ItemType Directory -Path $destinationFolder | Out-Null
}
# 创建 Excel 应用程序对象
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false
# 获取所有 XLSX 文件
Get-ChildItem -Path $sourceFolder -Filter *.xlsx | ForEach-Object {
$xlsxPath = $_.FullName
$xlsPath = Join-Path -Path $destinationFolder -ChildPath ($_.BaseName + ".xls")
Write-Host "Converting $($_.Name) to XLS format..."
# 打开 XLSX 文件
$workbook = $excel.Workbooks.Open($xlsxPath)
# 保存为 XLS 格式
$workbook.SaveAs($xlsPath, 56) # 56 是 XLS 格式的文件格式代码
# 关闭工作簿
$workbook.Close()
Write-Host "Conversion complete: $xlsPath"
}
# 关闭 Excel 应用程序
$excel.Quit()
# 释放 COM 对象
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
Write-Host "All conversions completed."
保存为 任意名字.ps1
4. 执行
注意 : 运行代码前需要信任该目录
5. 完成
运行完后就尽情的喝咖啡摸鱼吧!