dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #38197
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