将Microsoft XML文件格式转换为Excel文件

时间:2013-07-01 18:53:25

标签: windows excel vbscript ms-office

我要求我不确定如何去做。我有一个文件Doc.xml,这是Microsoft XML格式。我需要创建一个VB脚本,将Doc.xml更改/转换为Doc.xlsx,因此当用户尝试打开文件时,它将作为Excel文件打开。

其中一个要求是此脚本将从Windows Scheduler运行。

任何想法或建议都会非常感激。

这是我创建并正在运行的脚本,但是当我尝试将SaveAs扩展名更改为“.csv”时,文件未正确保存。我想我需要找出用CSV保存的代码。

Dim objXLApp, objXLWb, objXLWs

Set objXLApp = CreateObject("Excel.Application")

objXLApp.Visible = True

Set objXLWb = objXLApp.Workbooks.Open("C:\Users\jmejia\Desktop\XML_F\ZOOSHR_130622.xml")

'Do nothing with File, just open it to be save agains as a new file format

objXLWb.SaveAs "C:\Users\jmejia\Desktop\XML_F\ZOOSHR_130622.xlsx", 51

objXLWb.Close (False)

Set objXLWs = Nothing
Set objXLWb = Nothing

objXLApp.Quit
Set objXLApp = Nothing

2 个答案:

答案 0 :(得分:1)

如果您的文件是从Excel创建并导出的话> 2006年?然后它会有标签,这样在Windows机器上双击浏览器,任何支持xml格式的Excel都会自动在Excel中打开它。

您的文件可能以以下内容开头:

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">

答案 1 :(得分: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