← Back to team overview

dhis2-devs team mailing list archive

Re: Web API in Excel

 

Thanks Bob,

1. I have not established a preference here - your point on using CSV is a good one. CSV will probably be easier to "deserialize" in most cases. JSON or XML on the other hand, will probably be a little more robust to changes in the WebAPI output. 

2. I like it. Excel is a good tool accessible to many people. I have been using an excel sheet to manage some data through the API, but the sheet I made contains some "hardcodings" that is made for my specific case. I have been thinking about making a generic version of my Excel, that can be used by anyone to post, put and maybe also get data through the API.

Best regards
Markus

p.s. I deleted the stackexchange question again, as the question and answer was generic Excel, and not so DHIS related. The link still works, but here is the code snippet.

It is possible to use Excel Macros to call the Web API. Posting to the API can be done like this:

Public Function postData(ByVal address As String, ByVal json As String, ByVal mode As String)
    If (mode = "Yes" Or mode = "Debug") Then
        On Error GoTo Errorhandler
        Dim objHTTP As New WinHttpRequest
        URL = address
        objHTTP.Open "POST", URL, False
        objHTTP.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = 13056

        objHTTP.setRequestHeader "Content-Type", "application/json"
        objHTTP.setRequestHeader "Authorization", "Basic " & EncodeBase64("admin:district")
        objHTTP.send json

        If (mode = "Debug") Then
            postData = objHTTP.ResponseText
            Else
            postData = objHTTP.statusText
        End If
    Else
        postData = mode
    End If

    Exit Function 
    Errorhandler:     
        postData = Err.Description 
End Function
For doing a GET, you should be able to just replace the "POST" with a "GET", and send the request without the json.



> 23. jun. 2015 kl. 13.40 skrev Bob Jolliffe <bobjolliffe@xxxxxxxxx>:
> 
> Hi Markus
> 
> Thanks for this information.  That's a really useful snippet for
> anyone to get started who might want to do this.  I have a quick
> question and a comment/suggestion:
> 
> 1.  I can see from the link that you can indeed parse/serialize json
> from VBA - I guess it would have been surprising if you couldn't :-)
> Would you do this in preference to CSV?
> 
> 2.  On a a more general point, there has been interest in (and a long
> historical relationship) between DHIS and Excel.  Ranging from its
> early origins in DHIS1.4 through to primitive efforts to populate
> spreadsheet data using mydatamart.  But the use cases from excel as
> data collection instrument, through to excel for analysis (pivot
> tables) and simple metadata management are very varied.  It strikes me
> that a library of DHIS2-web-api macros similar to those you presented
> in your link would be hugely interesting to a lot of people.  Have you
> considered collecting/publishing such a thing?
> 
> Cheers
> Bob
> 
> On 23 June 2015 at 12:06, Markus Bekken <markus.bekken@xxxxxxxxx> wrote:
>> Hi Channara and Bob
>> 
>> I have been using macros to POST and PUT data to the API, and GET requests
>> should work just as well.
>> 
>> I added your question and put my macro code here:
>> https://webapps.stackexchange.com/questions/79521/can-i-use-excel-to-get-json-from-the-dhis-api/79522#79522
>> 
>> See the comment at the end, seems it is possible to parse the JSON in a
>> macro also.
>> 
>> Thank you,
>> Markus
>> 
>> 23. jun. 2015 kl. 12.13 skrev Bob Jolliffe <bobjolliffe@xxxxxxxxx>:
>> 
>> You can't use excel to get json data from dhis2 web api.  At least not
>> directly.
>> 
>> You could possibly write an excel macro to "get" the data through the
>> web api (I am really not sure - it is far too many years since i wrote
>> an excel macro), but you are still left with the problem of consuming
>> what you have got (json) into cells in a spreadsheet.
>> 
>> I believe all (or certainly almost all) of the data which is available
>> as json is also available as csv.  If you are looking at getting dhsi2
>> data into excel in general, I would look at csv rather than json if
>> you want to minimize the processing/transformation that would
>> otherwise have to happen in between getting the data and consuming it.
>> 
>> https://www.dhis2.org/doc/snapshot/en/developer/html/dhis2_developer_manual.html
>> 
>> On 23 June 2015 at 07:47, channara rin <rin.channara@xxxxxxxxx> wrote:
>> 
>> Hi all DHIS2 developer,
>> Do you know can i use Microsoft Excel to get json data from DHIS2 web API?
>> 
>> thank you
>> channara
>> 
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-devs
>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dhis2-devs
>> More help   : https://help.launchpad.net/ListHelp
>> 
>> 
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-devs
>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dhis2-devs
>> More help   : https://help.launchpad.net/ListHelp
>> 
>> 


References