← Back to team overview

dhis2-devs team mailing list archive

Re: [Dhis2-users] Web API in Excel

 

The excel thing is obviously something that we should address at some
point. I have also made an unfinished attempt during the Ebola crisis. What
I did was to provide a UI that allows users to upload excel file, do
mapping between columns and data elements or attributes and finally upload
the cell values.

On Tue, Jun 23, 2015, 14:15 rin.channara@xxxxxxxxx <rin.channara@xxxxxxxxx>
wrote:

> Yes, I agree with Markus,
> Excel is good tool to do deep formula to calculate in data elements. And
> offline too.
>
> Markus Bekken <markus.bekken@xxxxxxxxx> wrote:
>
> 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
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-users
> Post to     : dhis2-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-users
> More help   : https://help.launchpad.net/ListHelp
>
-- 
----
Thank you,
Abyot

Follow ups

References