Jump to content
DigDeep

Convert XML to XLS

Recommended Posts

DigDeep

Can someone please guide me if there is a way to Open XML file as XLS? Or if we can convert XML to XLS file format.

I have an xml file which contains list of lines and when I open it in xls format the contents appear in columns and rows automatically. Which is the way I am looking for...

Share this post


Link to post
Share on other sites
Danyfirex

You can use _Excel_BookSaveAs from _Excel udf.

 

Saludos

Share this post


Link to post
Share on other sites
DigDeep

I am still facing some issues here getting the error for "Error Opening WorkBook..."

I am trying to Open $XML > Read the lines > and Save the file in $XLS format.

$XML = "C:\Temp\Scan.xml"
$XLS = "C:\Temp\Final.xls"

Func Convert()
    ; Create application object and open an example workbook
    Local $XLS = _Excel_Open()
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    Local $oWorkbook = _Excel_BookOpen($XLS, $XML)
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example", "Error opening workbook '" & @ScriptDir & $XLS & @CRLF & "@error = " & @error & ", @extended = " & @extended)
        _Excel_Close($XLS)
        Exit
    EndIf

    ; *****************************************************************************
    ; Save the workbook (xls) in another format (html) to another directory and
    ; overwrite an existing version
    ; *****************************************************************************
    Local $sWorkbook = "C:\Temp\Scan.xml"
    _Excel_BookSaveAs($sWorkbook, $oWorkbook, True)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example 1", "Error saving workbook to '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example 1", "Workbook successfully saved as '" & $sWorkbook & "'.")
;~ ShellExecute($sWorkbook)
EndFunc   ;==>ConvertToXLS

Convert()

 

Share this post


Link to post
Share on other sites
Danyfirex

Try this.

 

#include <Excel.au3>



Local $sSourceFileXML = "C:\Users\xxx\Desktop\1.xml"
Local $sFinalFileXLS = "C:\Users\xxx\Desktop\1.xls"

_Convert($sSourceFileXML, $sFinalFileXLS)

Func _Convert($sXML, $sXLS)

    Local $oExcel = _Excel_Open(False)
    If @error Then Return False


    Local $oWorkbook = _Excel_BookOpen($oExcel, $sXML)
    If @error Then
        _Excel_Close($oExcel)
        Return False
    EndIf

    Local $iResult = _Excel_BookSaveAs($oWorkbook, $sXLS)

    _Excel_Close($oExcel)

    Return $iResult


EndFunc   ;==>_Convert

Saludos

Edited by Danyfirex
  • Like 2

Share this post


Link to post
Share on other sites
DigDeep

This works good.

Except that once xls is created while opening it gives error for file format. But I think this should work for me.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.