Completely agree with Alexis, this has been our go-to solution.
Pieter - I would guess there’s a slight risk with using AutoFit - the problem is that it’s not exactly an intelligent function. For example. if your user inputs 500 characters which is then placed into a cell, you could find that entire column gets stretched massively to accommodate. While this might be what you want, it’s also possible you’d want to use line-breaks or text wrapping to fit the 500 characters into a more sensibly-sized column.
Also, shuffling around your column sizes using an AutoFit approach would mean that if you’re using a template (which needs to fit nicely on an A4-sized report format, for the sake of argument) then you’ll constantly be outputting information which will vary in width, i.e. its format will be impossible to standardise. Perhaps this isn’t important for your needs, but it is for ours!