ODK2Doc: Convert ODK forms to word documents

Hi all,

I'd like to introduce a small Shiny Application (web app) I made that converts ODK questionnaires to formatted word documents that can be edited further and/or printed out.

At present, it takes as input a standard xls form, which must have three sheets:

  1. survey
  2. choices
  3. settings

It will then produce a formatted word document - users have the option of choosing to add skip logic for each question, as well. By default, it will not do this.

I'd like to get some feedback from the community on if this is useful and if there are any changes and/or other features people would like to see added to it!

You can check it out here: https://zaeendesouza.shinyapps.io/ODK2Doc/



Thank giving this tool
I check but giving error , please check
Screenshot attach for your reference

Can you share excel format or make any video , how to use


There are three (3) binding requirements for this to work:

  • survey sheet
  • choices sheet
  • settings sheet (with form_title) added - it will work even if the name isnt filled in, but the column needs to exist in the settings sheet.

As long as these sheets are populated using standard ODK/Kobo/SurveyCTO syntax and names, there will be no issue. See attached for a demo.

The full process:

Hi @zaeendesouza ,
Works fine for me (also with xlsx files).
Thanks for sharing and welcome to the ODK community forum :slight_smile:
When you'll get a chance don't hesitate to take some time to introduce yourself here .

1 Like

Thanks for testing it out, Mathieu. Happy that I can finally give something (small) back to the ODK community :slight_smile: Will do an intro post soon!

1 Like

Facing same issue
Can you check this excel file,
File attach for your reference
TEST.xlsx (12.8 KB)

Hi Azam, your form is empty in the choice sheet - try with a questionnaire that has questions. choices and a title.

Please check again i add new question but same error given
TEST.xlsx (13.8 KB)

Hi Azam,

I think the issue is that your form uses a column called 'label::english' while the requirement is just 'label'. Convert 'label::english' to 'label' and it should work fine. I will be pushing an update sometime next week, so will try to fix this, or mention that it you need to change the column to this.

Thanks for the feedback!


1 Like

Good work! just a few comment, rename label header to variable name and add group section names to provide context to set of related questions.

1 Like

This is really cool!

Enketo allows PDF exports but they aren't always the best for these purposes. If I was to give any feedback it would be to decide on what the purpose of the word exports is. If it is for someone who will review the content of the form then maybe it works well as it is.

If the purpose is for someone who needs to fill in the form but realises they cannot do it digitally, then maybe the choices should have check boxes and the text questions should have spaces ______. In that scenario the question "name" might not be needed.


Hi Noel,

Thanks for the feedback! Your suggestions are well recieved - indeed, the checkbox and _________ type filler is something I'm keen on adding too.

The goal (at least initially) was to aid in form/survey review, iteration and enumerator training.

It is very much a developing project, so i will try my best to incorporate your suggestions in the next update (might take a bit of time for the next update though!)



1 Like

Just to jump back in here as well, I'll be using this a couple times this week for work, and yes, it will be for people to check/review the form.

In this context, I'd also want to echo @Stephen_K_ojwang that one"formatting" thing I typically do when doing similar printouts for reviewers (usually doing that much more manually, which is what's so nice about your tool) is use "groups" to kind of organise my printout, so highlight the group header row in a different colour, bold, that kind of thing, and leave a blank space.

Not sure how that would work in a programmed type of app. However, I could share an example of that would be helpful to ponder with.

But also, I really see that this could be a really nice way to also do a printout for paper forms, as @noel described.

1 Like

I definitely agree with @janna on value for the colours (or alternative designs) for groups.

Even if there is no indication of which being_group and end_group lines are pairs, simply formatting them differently to the other questions is already very useful. Especially if they are "field-list" groups that should appear on one mobile device screen.

1 Like

Hey guys,

Thanks for this feedback; I like the idea of adding groups as well. I am currently traveling but will work on this and try to push an update soon (maybe a week and a half!).


I was using this and testing a bit more today.

I wanted to put this out here in case anyone else is using it and this might be helpful for troubleshooting.

A few other question types are missing when I convert to Word:

  • Acknowledge
  • Decimal
  • Image
  • Groups (which we already know about)
  • I've also had a couple select_one questions get missed out, not sure why yet

Would definitely help to have those questions also represented when printing out.

1 Like

Hi Janna, thanks for flagging these too. Will look into it as well. Would you mind sharing an anonymized sample questionnaire IF possible via dm? I might need to sit and check which questions are getting dropped and why!

Sure - will send in a DM. :slight_smile:

1 Like

Hi @zaeendesouza , maybe it would be useful to show (optionally) only a preview or select_one or select_multiple options as a simple list (option_1, option_2, [...], last option)


A few other question types are missing when I convert to Word: