NAME
Spreadsheet::XLSX::Reader::LibXML::Cell - XLSX Cell data class
SYNOPSIS
See the SYNOPSIS in the Workbook class
DESCRIPTION
This is the class that contains cell data. There are no XML parsing actions taken in the background of this class. All data has been pre-coalated/built from the Worksheet class. In general the Worksheet class will populate the attributes of this class when it is generated. If you want to use it as a standalone class just fill in the Attributes below.
Primary Methods
These are methods used to transform data stored in the Attributes (not just return it directly). All methods are object methods and should be implemented on the instance.
Example:
my $unformatted_value = $cell_intance->unformatted;
unformatted
Definition: Returns the unformatted value of the cell transformed with the change_output_encoding method.
Accepts:Nothing
Returns: the cell value processed by the encoding conversion
has_unformatted
Definition: This is a predicate method to determine if the cell had any value stored in it. Sometimes this class will be generated by the Worksheet class when there is cell formatting but no value. Ex. Merged cells store the value in the left upper corner of the merged area but have cell specific formatting for all cells in the merge area.
Accepts:Nothing
Returns: True if the cell holds an unformatted value (even if it is just a space or empty string)
value
Definition: Returns the formatted value of the cell transformed from the unformatted string. This method uses the conversion stored in the cell_coercion attribute. If there is no format/conversion set then this will return the unformatted value. Any failures to process this value can be retrieved with $self->error.
Accepts:Nothing
Returns: the cell value processed by the set conversion
Attributes
This class is just a storage of coallated information about the requested cell stored in the following attributes. For more information on attributes see Moose::Manual::Attributes. The meta data about the cell can be retrieved from each attribute using the 'attribute methods'.
error_inst
Definition: This attribute holds an 'error' object instance. In general the package shares a reference for this instance accross the workbook with all worksheets and all cells so any set or get action should return the latest error state from anywhere. (not just the instance you are working on)
Default: a Spreadsheet::XLSX::Reader::LibXML::Error instance with the attributes set as;
( should_warn => 0 )
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. This is a delegated method from the error instance.
if_warn
Definition: a method mostly used to extend this package and see if warnings should be emitted.
cell_unformatted
Definition: This holds the unformatted value of the cell (if any)
Default: undef
Range: a string
attribute methods Methods provided to adjust this attribute
unformatted
Definition: returns the attribute value
has_unformatted
Definition: a predicate method to determine if any value is in the cell
rich_text
Definition: This attribute hold a rich text data structure like "get_rich_text()" in Spreadsheet::ParseExcel::Cell with the exception that it doesn't bless each hashref into an object. The hashref's are also organized per the Excel xlsx information in the the sharedStrings.xml file. In general this is an arrayref of arrayrefs where the second level contains two positions. The first position is the place (from zero) where the formatting is implemented. The second position is a hashref of the formatting values. The format is inforce until the next start place is identified.
note: It is important to understand that Excel can store two formats for the same cell and often they don't agree. For example using the attribute cell_font will not always contain the same value as specific fonts (or any font) listed in the rich text array. f =back
Default: undef = no rich text defined for this cell
Range: an array ref of rich_text positions and definitions
attribute methods Methods provided to adjust this attribute
get_rich_text
Definition: returns the attribute value
has_rich_text
Definition: Indicates if the attribute has anything stored
cell_font
Definition: This holds the font assigned to the cell
Default: undef
Range: a hashref of definitions for the font
attribute methods Methods provided to adjust this attribute
get_font
Definition: returns the attribute value
has_font
Definition: Indicates if the attribute has anything stored
cell_border
Definition: This holds the border settings assigned to the cell
Default: undef
Range: a hashref of border definitions
attribute methods Methods provided to adjust this attribute
get_border
Definition: returns the attribute value
has_border
Definition: Indicates if the attribute has anything stored
cell_style
Definition: This holds the border settings assigned to the cell
Default: undef
Range: a hashref of style definitions
attribute methods Methods provided to adjust this attribute
get_style
Definition: returns the attribute value
has_style
Definition: Indicates if the attribute has anything stored
cell_fill
Definition: This holds the fill settings assigned to the cell
Default: undef
Range: a hashref of style definitions
attribute methods Methods provided to adjust this attribute
get_fill
Definition: returns the attribute value
has_fill
Definition: Indicates if the attribute has anything stored
cell_type
Definition: This holds the type of data stored in the cell. In general it follows the convention of ParseExcel (Date, Numeric, or Text) however, since custom coercions will change data to some possible non excel standard state this also allows a 'Custom' type representing any cell with a custom conversion assigned to it (by you either at the worksheet level or here).
Default: Text
Range: Text = Strings, Numeric = Real Numbers, Date = Real Numbers with an assigned Date conversion, Custom = any stored value with a custom conversion
attribute methods Methods provided to adjust this attribute
type
Definition: returns the attribute value
has_type
Definition: Indicates if the attribute has anything stored (Always true)
cell_encoding
Definition: This holds the byte encodeing of the data stored in the cell
Default: Unicode
Range: Traditional encoding options
attribute methods Methods provided to adjust this attribute
encoding
Definition: returns the attribute value
has_encoding
Definition: Indicates if the attribute has anything stored
cell_merge
Definition: if the cell is part of a group of merged cells this will store the upper left and lower right cell ID's in a string concatenated with a ':'
Default: undef
Range: two cell ID's
attribute methods Methods provided to adjust this attribute
merge_range
Definition: returns the attribute value
is_merged
Definition: Indicates if the attribute has anything stored
cell_formula
Definition: if the cell value (unformatted) is calculated based on a formula the Excel formula string is stored in this attribute.
Default: undef
Range: Excel formula string
attribute methods Methods provided to adjust this attribute
formula
Definition: returns the attribute value
has_formula
Definition: Indicates if the attribute has anything stored
cell_row
Definition: This is the sheet row that the cell was read from
Range: the minimum row to the maximum row
attribute methods Methods provided to adjust this attribute
row
Definition: returns the attribute value
has_row
Definition: Indicates if the attribute has anything stored
cell_col
Definition: This is the sheet column that the cell was read from
Range: the minimum column to the maximum column
attribute methods Methods provided to adjust this attribute
col
Definition: returns the attribute value
has_col
Definition: Indicates if the attribute has anything stored
r
Definition: This is the cell ID of the cell
attribute methods Methods provided to adjust this attribute
cell_id
Definition: returns the attribute value
has_cell_id
Definition: Indicates if the attribute has anything stored
cell_hyperlink
Definition: This stores any hyperlink from the cell
attribute methods Methods provided to adjust this attribute
get_hyperlink
Definition: returns the attribute value
has_hyperlink
Definition: Indicates if the attribute has anything stored
cell_coercion
Definition: This attribute holds the tranformation code to turn an unformatted value into a formatted value.
Default: a Type::Tiny instance with sub types set to assign different inbound data types to different coercions for the target outcome of formatted data.
Range: If you wish to set this with your own code it must have two methods. First, 'assert_coerce' which will be applied when transforming the unformatted value. Second, 'display_name' which will be used to self identify. For an example of how to build a custom format see "custom_formats" in Spreadsheet::XLSX::Reader::LibXML::Worksheet.
attribute methods Methods provided to adjust this attribute
get_coercion
Definition: returns this instance
clear_coercion
Definition: used to clear the this attribute
set_coercion
Definition: used to set a new coercion instance. Implementation of this method will also switch the cell type to 'Custom'.
has_coercion
Definition: Indicate if any coecion code is applied
coercion_name
Definition: calls 'display_name' on the code in the background
SUPPORT
TODO
1. Return the merge range in array and hash formats
2. Add calc chain values
3. Have unformatted return '' (the empty string) rather than undef for null?
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, 2015 by Jed
DEPENDENCIES
version 0.77
Type::Tiny - 1.000>
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