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 should do the same.)
#!/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 => '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 use this module when writing your own excel parser or extending this package. To use the general package for excel parsing out of the box please review the documentation for Workbooks , Worksheets , and Cells.
This general class is written to access the sub file calcChain.xml from a zipped (.xlsx) file. The file to be read is generally found in the xl/ sub folder. 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 the ~XMLReader::CalcChain documentation. To replace or augment one of those classes 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 35).
Required Method(s)
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. (usually saved in the cell data for the worksheet)
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
Definition: This needs to be the full file path to the calcChain file or an opened file handle . When set it will coerce to a file handle and then will open and read the primary settings in the calcChain and then maintain an open file handle for accessing specific calcChain position information.
Required: Yes
Default: none
Range an actual Excel 2007+ calcChain file or open file handle (with the pointer set to the beginning of the file)
attribute methods Methods provided to adjust this attribute
get_file
Definition: Returns the value (file handle) stored in the attribute
error_inst
Definition: Currently all CalcChain readers require an Error instance. In general the package will share an error instance reference between the workbook and all classes built during workbook parsing.
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
TODO
1. Write a DOM version of the parser
AUTHOR
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, 2015 by Jed Lund
DEPENDENCIES
SEE ALSO
Spreadsheet::ParseExcel - Excel 2003 and earlier
Spreadsheet::XLSX - 2007+
Spreadsheet::ParseXLSX - 2007+
All lines in this package that use Log::Shiras are commented out