If you only want the data for presentation or approvals (sent in emails, etc) then there is a codeless way to do it. (or at the least, you need to understand basic HTML)
In my case, I needed to create a SharePoint form library for requisitions, and kick off an approval workflow to get it authorized.
What I've done in InfoPath is create a column at the end of my repeating table that concatenates that row of values in a table row string.
For example, with 2 InfoPath columns "item" and "price" - my last column "datamerge" would be a function to create an HTML row:
=concat("<tr><td>",item,"</td><td>",price,"</td></tr>")
Then I promote the column "datamerge" (selecting the merge option) to get it in SharePoint.
In my case, I need to email that data to a list of approvers (e.g. a simple requisition form).
So to get this repeating table data I declare a Workflow string variable that includes the start and end of the HTML table, and inserts the "datamerge" column in the middle:
POTable = "<table><tr><td>DESCRIPTION</td><td>COST</td></tr>[datamerge]</table>"
Now when I include POTable in the body of the email I send for approvals in the workflow, it includes a table format of data along with
all the other InfoPath form variables that are not part of the repeating table.
Works well enough for this purpose, and with additional HTML formatting and such in the HTML strings, it can be polished nicely for emails.
If PO editing is required, they use an EDIT view of the InfoPath form, and be sure to hide this data from the list view in SharePoint.
I've only started using InfoPath/SharePoint 2013 myself, so I might be missing some fundamental means of doing it differently - but desperation is the root of creativity in my case.
Cheers
Steve