I'd like to give two advices:
- Use Spreadsheet::ParseXLSX instead of Spreadsheet::XLSX. The first is actively maintained and has a whole lot more functionality than Spreadsheet::XLSX, which is unmaintained, has bugs and lacks features. An additional advantage of Spreadsheet::ParseXLSX is that it uses the same API as Spreadsheet::ParseExcel.
If the print header is not accessible right now, a new ticket might trigger the author to make it available in Spreadsheet::ParseXLSX.
- Use Text::CSV_XS (or Text::CSV) for the generation of the CSV.
Enjoy, Have FUN! H.Merijn