我有大约200个标准Excel 2003格式的Excel文件。
我需要将它们全部保存为Excel xml - 基本上与打开每个文件并选择另存为... 然后选择保存类型: <相同em> XML电子表格
您是否知道自动执行该任务的任何简单方法?
答案 0 :(得分:8)
这是一个例程,它将转换扩展名为.xls的单个目录中的所有文件。
这需要一种直截了当的方法。工作簿中的任何VBA代码都被删除,工作簿不会以.xlsm扩展名保存。不会发布任何不兼容性警告,而是自动接受更改。
Sub Convert_xls_Files()
Dim strFile As String
Dim strPath As String
With Application
.EnableEvents = False
.DisplayAlerts = False
.ScreenUpdating = False
End With
'Turn off events, alerts & screen updating
strPath = "C:\temp\excel\"
strFile = Dir(strPath & "*.xls")
'Change the path as required
Do While strFile <> ""
Workbooks.Open (strPath & strFile)
strFile = Mid(strFile, 1, Len(strFile) - 4) & ".xlsx"
ActiveWorkbook.SaveAs Filename:=strPath & strFile, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close True
strFile = Dir
Loop
'Opens the Workbook, set the file name, save in new format and close workbook
With Application
.EnableEvents = True
.DisplayAlerts = True
.ScreenUpdating = True
End With
'Turn on events, alerts & screen updating
End Sub
答案 1 :(得分:3)
您可以调整我在此处发布的代码:
http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx
它显示了如何保存为PDF(Word显示在博客中,但如果您下载解决方案,则它包含Excel和PPT的代码)。
您需要找到保存为新格式而不是导出的功能(可能最简单的方法是记录您自己在Excel中执行此操作然后查看代码的宏)。
答案 2 :(得分:3)
打开它们,然后按ALT + F11进入宏编辑器并输入如下内容:
Sub SaveAllAsXml()
Dim wbk As Workbook
For Each wbk In Application.Workbooks
wbk.SaveAs FileFormat:=XlFileFormat.xlXMLSpreadsheet
Next
End Sub
然后按F5运行它。可能需要一些调整,因为我还没有测试过。
答案 3 :(得分:1)
听起来像是我最喜欢的最被低估的语言的工作:VBScript !!
把它放在一个文本文件中,并使扩展名为“.vbs”:
set xlapp = CreateObject("Excel.Application")
set fso = CreateObject("scripting.filesystemobject")
set myfolder = fso.GetFolder("YOURFOLDERPATHHERE")
set myfiles = myfolder.Files
for each f in myfiles
set mybook = xlapp.Workbooks.Open(f.Path)
mybook.SaveAs f.Name & ".xml", 47
mybook.Close
next
我没有对此进行测试,但它应该可以正常运行
答案 4 :(得分:0)
最简单的方法是为一个文件记录宏,然后手动编辑宏以使用循环对文件夹中的文件执行此类操作。在宏中,您可以使用标准VB函数来获取目录中的所有文件并过滤它们。您可以查看http://www.xtremevbtalk.com/archive/index.php/t-247211.html以获取更多信息。
答案 5 :(得分:0)
Const xlXLSX = 51
REM 51 = xlOpenXMLWorkbook (without macro's in 2007-2013, xlsx)
REM 52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2013, xlsm)
REM 50 = xlExcel12 (Excel Binary Workbook in 2007-2013 with or without macro's, xlsb)
REM 56 = xlExcel8 (97-2003 format in Excel 2007-2013, xls)
dim args
dim file
dim sFile
set args=wscript.arguments
dim wshell
Set wshell = CreateObject("WScript.Shell")
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open( wshell.CurrentDirectory&"\"&args(0))
objExcel.DisplayAlerts = FALSE
objExcel.Visible = FALSE
objWorkbook.SaveAs wshell.CurrentDirectory&"\"&args(1), xlXLSX
objExcel.Quit
Wscript.Quit