Spreadsheet::ParseODS - read SXC and ODS files


  my $parser = Spreadsheet::ParseODS->new(
      line_separator => "\n", # for multiline values
  my $workbook = $parser->parse("$d/$file");
  my $sheet = $workbook->worksheet('Sheet1');


This module is not yet API-compatible with Spreadsheet::ParseXLSX and Spreadsheet::ParseXLS. Method-level compatibility is planned, but there always be differences in the values returned, for example for the cell types.




  • line_separator - the value to separate multi-line cell values with

  • readonly - create the sheet as readonly, sharing Cells between repeated rows. This uses less memory at the cost of not being able to modify the data structure.

  • NoTruncate - legacy option not to truncate the sheets by stripping empty columns from the right edge of a sheet. This option will likely be renamed or moved.

  • twig - a premade XML::Twig::XPath instance

->parse( %options )

    my $workbook = Spreadsheet::ParseODS->new()->parse( 'example.ods' );

Reads the spreadsheet into memory and returns the data as a Spreadsheet::ParseODS::Workbook object.


  • inputtype - the type of file if passing a filehandle. Can be ods, sxc , fods or xml.

This method also takes the same options as the constructor.