Technically, all the file processing can happen client-side now, thanks to the HTMl5 file API. Users' data doesn't have to leave the browser.
[shameless plug] This is the approach I have taken creating a similar converter (which also works offline):
[shameless plug] This is the approach I have taken creating a similar converter (which also works offline):
Hint: a lot smaller than almost all the CSV files I've had to deal with.
To the grandparent: you might want to make it more explicit that you're actually retaining the uploaded data and not just using it to generate the result page.