Another potentially hair-brained scheme for your consideration:
- For a one time task using actual Excel, create a workbook with an Auto_Open() macro containing simply Columns.AutoFit
- Again one time only, using the extract_vba.pl utility from Excel::Writer::XLSX, extract the macro as a binary file and store it somewhere permanently for use in your periodic spreadsheet generation
- Use Excel::Writer::XLSX to do all your spreadsheet creation, and also insert the macro using add_vba_project( 'vbaProject.bin' ), then distribute the resulting as an XLSM file. Now I don't know how much this will mess up your spreadsheet creation code, but according to the docs, it should be little problem.
The downside is depending on your users' setups they may have to authorize the macro to run when they load the file, which may generate lots of questions and put you no farther ahead than you are now.
--
I'd like to be able to assign to an luser