There is now a module that helps you convert data read with Spreadsheet::ParseXLSX into an object that Excel::Writer::XLSX can write. It would be nice if there was one module that did all this, but there isn't as best as I can tell. So for now you must use three modules to get this done. See Excel-CloneXLSX-Format