Linux workstation

Upstream software project

libspreadsheet-readsxc-perl

Extract OpenOffice 1.x spreadsheet data

About libspreadsheet-readsxc-perl

Extract OpenOffice 1.x spreadsheet data

This project links 5 native package records across 5 recorded operating-system releases. Compare the retained versions and architectures below, then open the package for your own release.

These are catalog observations, not a guarantee of installation, compatibility, or upstream support.

Project pictures and package coverage

Debian 12 (Bookworm): 1 package records; Debian 13 (Trixie): 1 package records; openSUSE Leap 15.6: 1 package records; openSUSE Leap 16.0: 1 package records; openSUSE Tumbleweed: 1 package records. Catalog coverage diagram, not an application screenshot.libspreadsheet-readsxc-perl: recorded package coverageDebian 12 (Bookworm)1 recordsDebian 13 (Trixie)1 recordsopenSUSE Leap 15.61 recordsopenSUSE Leap 16.01 recordsopenSUSE Tumbleweed1 records
OpenFactory diagram of linked package records. It is not an application screenshot.

Project identity

Project
libspreadsheet-readsxc-perl
Publisher
Not authoritatively mapped
Native package records
5
Operating systems
debian-12, debian-13, opensuse-leap-15-6, opensuse-leap-16-0, opensuse-tumbleweed
License expression
Artistic-1.0 OR GPL-1.0-or-later
Metadata completeness
100/100 (not a software quality rating)
Source repository
Not reported

Source-reported description

The fullest retained description is shown with its source. Distribution packaging descriptions may include downstream details.

Spreadsheet::ReadSXC extracts data from OpenOffice 1.x spreadsheet files (.sxc). It exports the function read_sxc() which takes a filename and an optional reference to a hash of options as arguments and returns a reference to a hash of references to two-dimensional arrays. The hash keys correspond to the names of worksheets in the OpenOffice workbook. The two-dimensional arrays correspond to rows and cells in the respective spreadsheets. If you don't like this because the order of sheets is not preserved in a hash, read on. The 'OrderBySheet' option provides an array of hashes instead. If you prefer to unpack the .sxc file yourself, you can use the function read_xml_file() instead and pass the path to content.xml as an argument. Or you can extract the XML string from content.xml and pass the string to the function read_xml_string(). Both functions also take a reference to a hash of options as an optional second argument. Spreadsheet::ReadSXC uses XML::Twig to parse the XML contained in .sxc files. Only the contents of text:p elements are returned, not the actual values of table:value attributes. For example, a cell might have a table:value-type attribute of "currency", a table:value attribute of "-1500.99" and a table:currency attribute of "USD". The text:p element would contain "-$1,500.99". This is the string which is returned by the read_sxc() function, not the value of -1500.99. Spreadsheet::ReadSXC was written with data import into an SQL database in mind. Therefore empty spreadsheet cells correspond to undef values in array rows. The example code above shows how to replace undef values with empty strings. If the .sxc file contains an empty spreadsheet its hash element will point to an empty array (unless you use the 'NoTruncate' option in which case it will point to an array of an array containing one undefined element). OpenOffice uses UTF-8 encoding. It depends on your environment how the data returned by the XML Parser is best handled: use Unicode::String qw(latin1 utf8); $unicode_string = utf8($$workbook_ref{"Sheet1"}[0][0])->as_string; $latin1_string = utf8($$workbook_ref{"Sheet1"}[0][0])->latin1; Of course there are other modules than Unicode::String on CPAN that handle conversion between encodings. It's your choice. Table rows in .sxc files may have a "table:number-rows-repeated" attribute, which is often used for consecutive empty rows. When you format whole rows and/or columns in OpenOffice, it sets the numbers of rows in a worksheet to 32,000 and the number of columns to 256, even if only a few lower-numbered rows and cells actually contain data. Spreadsheet::ReadSXC truncates such sheets so that there are no empty rows after the last row containing data and no empty columns after the last column containing data (unless you use the 'NoTruncate' option). Still it is perfectly legal for an .sxc file to apply the "table:number-rows-repeated" attribute to rows that actually contain data (although I have only been able to produce such files manually, not through OpenOffice itself). To save on memory usage in these cases, Spreadsheet::ReadSXC does not copy rows by value, but by reference (remember that multi-dimensional arrays in Perl are really arrays of references to arrays). Therefore, if you change a value in one row, it is possible that you find the corresponding value in the next row changed, too: $$workbook_ref{"Sheet1"}[0][0] = 'new string'; print $$workbook_ref{"Sheet1"}[1][0]; As of version 0.20 the references returned by read_sxc() et al. remain valid after subsequent calls to the same function. In earlier versions, calling read_sxc() with a different file as the argument would change the data referenced by the original return value, so you had to derefence it before making another call. Thanks to H. Merijn Brand for fixing this.

Description source

Packages by operating system

Compare recorded versions, then open a package for dependency, file, checksum, and repository evidence. Version strings are distribution-specific, not a ranking of newer software.

Debian 12 (Bookworm)

  1. libspreadsheet-readsxc-perl

    Debian 12 (Bookworm) / perl

    0.35-1

    reader for OpenOffice 1.x and OpenDocument spreadsheets

    allbookworm

Debian 13 (Trixie)

  1. libspreadsheet-readsxc-perl

    Debian 13 (Trixie) / perl

    0.39-1

    reader for OpenOffice 1.x and OpenDocument spreadsheets

    alltrixie

openSUSE Leap 15.6

  1. perl-Spreadsheet-ReadSXC

    openSUSE Leap 15.6 / Unspecified / source perl-Spreadsheet-ReadSXC

    0.380.0-bp156.1.1

    Extract OpenOffice 1.x spreadsheet data

    noarchleap-15.6

openSUSE Leap 16.0

  1. perl-Spreadsheet-ReadSXC

    openSUSE Leap 16.0 / Unspecified / source perl-Spreadsheet-ReadSXC

    0.380.0-bp160.1.11

    Extract OpenOffice 1.x spreadsheet data

    noarchleap-16.0

openSUSE Tumbleweed

  1. perl-Spreadsheet-ReadSXC

    openSUSE Tumbleweed / Unspecified / source perl-Spreadsheet-ReadSXC

    0.390.0-1.6

    Extract OpenOffice 1.x spreadsheet data

    noarchtumbleweed

Project resources and further reading

Mapping provenance

Only source-backed identity signals create public cross-OS links. A reviewer can later approve or dispute an inferred relationship without rewriting native package history.

No field-level source record is published yet.

libspreadsheet-readsxc-perl Software and Packages | OpenFactory