I have released a new module to CPAN for writing Excel files in the 2007 XLSX format: Excel::Writer::XLSX

It uses the Spreadsheet::WriteExcel interface but is in a different namespace for reasons of maintainability.

Not all of the features of Spreadsheet::WriteExcel are supported but they will be in time.

The main advantage of the XLSX format over the XLS format for the end user is that it allows 1,048,576 rows x 16,384 columns, if you can see that as an advantage.

From a development point of view the main advantage is that the XLSX format is XML based and as such is much easier to debug and test than the XLS binary format.

It has become increasingly difficult to carve out the time required to add new features to Spreadsheet::WriteExcel. Even something as seemingly innocuous as adding trendlines to charts could take up to a month of reverse engineering, debugging, testing and implementation.

Hopefully the XLSX format will allow for faster, easier test driven development and may entice in some other contributors.


How compatible is the XLSX format with ODS? I know that they are both XML-based, but that's about it. I've never needed to use Excel anymore these couple of years, OO.org has been good enough. It would be nice if this new module can read/write ODS too.

Hi John,
I tried creating a sheet with morethan 70,000 hyperlinks, but the worksheet got corrupted. Is there any solution for this issue. I am using XLSX Writer 0.49 version.


Hi John,

Can I use your module for both 2007 XML based Excel and older version of Excel or do I need to figure out how to switch between Excel::Writer::XLSX and Spreadsheet::ParseExcel based on Excel versions? Please advise.


Leave a comment

About John McNamara

user-pic Just another Perl hacker