找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 39184|回复: 6

[文件操作] 如何用批处理把Excel文件xls表格改成xlsx表格?

[复制链接]
发表于 2019-9-4 14:37:02 | 显示全部楼层 |阅读模式
大神好,我们系统中默认导出的表格格式是.xls格式,97-2003格式的表格,现在我想用bat把这个表格的格式改成.XLSX的格式,2007格式的表格,请问有没有什么好的批处理的方法。

我是为了转成2007格式的表格之后,然后自动导入到数据模型中进行计算的,数据模型中不识别97-2003格式的表格。

我尝试了用这个代码,发现不行,没有改成功。请各位大神帮忙给想想解决方法,谢谢。
  1. ren *..XLS    *.xlsx
复制代码
发表于 2019-9-4 14:46:28 | 显示全部楼层
没有改成功是指文件扩展名没有修改?还是文件扩展名修改了但是数据模型不识别?
发表于 2019-9-4 18:39:05 | 显示全部楼层
*..xls是不是多加了个点
发表于 2023-10-9 16:51:18 | 显示全部楼层
xls转xlsx - 单个文件.bat
  1. # & cls & @cd /d "%~dp0" & powershell "Get-Content '%~0' | Out-String | Invoke-Expression " & exit /b
  2. $Excel = New-Object -ComObject Excel.Application
  3. $Excel.Visible = $false
  4. $Workbook = $Excel.Workbooks.Open("C:\Test\Excel\1.xls")
  5. $Workbook.CheckCompatibility = $false
  6. $Workbook.SaveAs("C:\Test\Excel\1.xlsx", 51)
  7. $Workbook.Close()
  8. $Excel.Quit()
复制代码
xls转xlsx - 多个文件.bat
  1. # & cls & @cd /d "%~dp0" & powershell "Get-Content '%~0' | Out-String | Invoke-Expression " & exit /b
  2. $OldFolder = "C:\Test\From"
  3. $NewFolder = "C:\Test\To"
  4. $Excel = New-Object -ComObject Excel.Application
  5. $Excel.Visible = $false
  6. Get-ChildItem -Path $OldFolder\*.xls -File | ForEach-Object {
  7.     $NewName = $NewFolder + "" + $_.BaseName + ".xlsx"
  8.     "[From] " + $_.FullName
  9.     "[To] " + $NewName
  10.     $Workbook = $Excel.Workbooks.Open($_.FullName)
  11.     $Workbook.CheckCompatibility = $false
  12.     $Workbook.SaveAs($NewName, 51)
  13.     $Workbook.Close()
  14. }
  15. $Excel.Quit()
复制代码
xlsx转xls - 单个文件.bat
  1. # & cls & @cd /d "%~dp0" & powershell "Get-Content '%~0' | Out-String | Invoke-Expression " & exit /b
  2. $Excel = New-Object -ComObject Excel.Application
  3. $Excel.Visible = $false
  4. $Workbook = $Excel.Workbooks.Open("C:\Test\Excel\1.xlsx")
  5. $Workbook.CheckCompatibility = $false
  6. $Workbook.SaveAs("C:\Test\Excel\2.xls", 56)
  7. $Workbook.Close()
  8. $Excel.Quit()
复制代码
xlsx转xls - 多个文件.bat
  1. # & cls & @cd /d "%~dp0" & powershell "Get-Content '%~0' | Out-String | Invoke-Expression " & exit /b
  2. $OldFolder = "C:\Test\From"
  3. $NewFolder = "C:\Test\To"
  4. $Excel = New-Object -ComObject Excel.Application
  5. $Excel.Visible = $false
  6. Get-ChildItem -Path $OldFolder "*.xlsx" | ForEach-Object {
  7.     $NewName = $NewFolder + "" + $_.BaseName + ".xls"
  8.     "[From] " + $_.FullName
  9.     "[To] " + $NewName
  10.     $Workbook = $Excel.Workbooks.Open($_.FullName)
  11.     $Workbook.CheckCompatibility = $false
  12.     $Workbook.SaveAs("$NewName", 56)
  13.     $Workbook.Close()
  14. }
  15. $Excel.Quit()
复制代码
发表于 2024-3-6 13:39:17 | 显示全部楼层
回复 4# Batcher


    这个带$符号不是powershell吗?
发表于 2024-3-6 14:18:10 | 显示全部楼层
回复 5# GNGW


第一行代码的作用是在bat里面调用powershell
这是bat和powershell混编的一种用法
发表于 2024-3-7 14:27:11 | 显示全部楼层
回复 6# Batcher


    牛啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 05:45 , Processed in 0.017668 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表