NAME

Spreadsheet::XLSX::Reader::LibXML::CalcChain - Read xlsx calcChain files with LibXML

SYNOPSIS

The following uses the 'calcChain.xml' file found in the t/test_files/xl/ folder. It also uses the XMLReader version of the CalcChain class. (Any version will do.)

    #!/usr/bin/env perl
    $|=1;
    use Data::Dumper;
    use Spreadsheet::XLSX::Reader::LibXML::Error;
    use Spreadsheet::XLSX::Reader::LibXML::XMLReader::CalcChain;

    my $file_instance = Spreadsheet::XLSX::Reader::LibXML::XMLReader::CalcChain->new(
		file_name => 'calcChain.xml',
		error_inst => Spreadsheet::XLSX::Reader::LibXML::Error->new,
	);
    print Dumper( $file_instance->get_calc_chain_position( 2 ) );

	###########################
	# SYNOPSIS Screen Output
	# 01: $VAR1 = {
	# 02:           'r' => 'D14',
	# 03:           's' => '1'
 	# 04:         };
	###########################

DESCRIPTION

This documentation is written to explain ways to extend this package. To use the data extraction of Excel workbooks, worksheets, and cells please review the documentation for Spreadsheet::XLSX::Reader::LibXML, Spreadsheet::XLSX::Reader::LibXML::Worksheet, and Spreadsheet::XLSX::Reader::LibXML::Cell

This general class is written to access the sub file calcChain.xml from an unzipped .xlsx file. The file to be read is generally found in the xl/ sub folder after the master file is unzipped. The calcChain.xml file contains the calculation sequence and data source(s) used when building the value for cells with formulas. (The formula presented in the Cell instance is collected from somewhere else. This documentation is for a general explanation but the example uses an XMLReader version for this file. Documentation specific to that reader can be found in ~XMLReader::CalcChain . To replace or augment this class you would need to fork the github package and insert a call for your new class in the $parser_modules variable maintained in the Spreadsheet::XLSX::Reader::LibXML class. (about line 34).

Required Methods

These are the primary way(s) to use this class. For additional CalcChain options see the Attributes section. All replacement classes must provide these methods. Methods used to manipulate the attributes are listed in each attribute.

get_calc_chain_position( $integer )

Definition: This will return the calcChain information from the identified $integer position. (Counting from zero). The information is returned as a perl hash ref.

Accepts: an $integer for the calcChain position

Returns: a hash ref of data

Attributes

Data passed to new when creating an instance. For modification of these attributes see the listed 'attribute methods'. For more information on attributes see Moose::Manual::Attributes.

file_name

Definition: This needs to be the full file path to the calcChain file to be parsed. When set it will open and read the primary settings in the calcChain and then maintain an open file handle for accessing data within the file.

Required: Yes

Default: none

Range an actual Excel 2007+ calcChain file

attribute methods Methods provided to adjust this attribute

get_file_name

Definition: Returns the value stored in the instance

error_inst

Definition: Currently all CalcChain readers require an Error instance.

Required: Yes

Default: none

Range: The minimum list of methods to implement for your own instance is;

error set_error clear_error set_warnings if_warn

attribute methods Methods provided to adjust this attribute

get_error_inst

Definition: returns this instance

error

Definition: Used to get the most recently logged error

set_error

Definition: used to set a new error string

clear_error

Definition: used to clear the current error string in this attribute

set_warnings

Definition: used to turn on or off real time warnings when errors are set

if_warn

Definition: a method mostly used to extend this package and see if warnings should be emitted.

SUPPORT

github Spreadsheet::XLSX::Reader::LibXML/issues

TODO

1. Write a DOM version of the parser

AUTHOR

Jed Lund
jandrew@cpan.org

COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

This software is copyrighted (c) 2014 by Jed Lund

DEPENDENCIES

Spreadsheet::XLSX::Reader::LibXML

SEE ALSO

Spreadsheet::ParseExcel - Excel 2003 and earlier

Spreadsheet::XLSX - 2007+

Spreadsheet::ParseXLSX - 2007+

Log::Shiras

All lines in this package that use Log::Shiras are commented out