NAME
Spreadsheet::Reader::ExcelXML::ZipReader - Base Zip file reader
SYNOPSIS
#!/usr/bin/env perl
use MooseX::ShortCut::BuildInstance qw( build_instance );
use lib '../../../../lib';
use Spreadsheet::Reader::ExcelXML::ZipReader;
use Spreadsheet::Reader::ExcelXML::WorkbookFileInterface;
my $test_file = '../../../../t/test_files/TestBook.xlsx';
my $test_instance = build_instance(
package => 'WorkbookFileInterface',
superclasses => ['Spreadsheet::Reader::ExcelXML::ZipReader'],
add_roles_in_sequence =>[
'Spreadsheet::Reader::ExcelXML::WorkbookFileInterface',
],
file => $test_file,
);
my $sub_file = $test_instance->extract_file( 'xl/workbook.xml' );
print $sub_file->getline;
##############################################################
# SYNOPSIS Screen Output
# 01: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
##############################################################
DESCRIPTION
This documentation is written to explain ways to use this module when writing your own excel parser. To use the general package for excel parsing out of the box please review the documentation for Workbooks, Worksheets, and Cells
This module provides a way to open a zip file or file handle and then extract sub files. This package uses Archive::Zip. Not all versions of Archive::Zip work for everyone. I have tested this with Archive::Zip 1.30. Please let me know if this does not work with a sucessfully installed (read passed the full test suit) version of Archive::Zip newer than that.
Attributes
Data passed to new when creating an instance. For modification of these attributes see the listed 'attribute methods'. For general information on attributes see Moose::Manual::Attributes. For ways to manage the instance when opened see the Methods.
file
Definition: This attribute holds the file handle for the file being read. If the full file name and path is passed to the attribute it is coerced to an IO::File file handle. This file handle will be expected to pass the test
Default: no default - this must be provided to read a file
Required: yes
Range: any Zip file name and path or IO::File file handle for a zip file
attribute methods Methods provided to adjust this attribute
set_file
Definition: change the file value in the attribute (this will reboot the file instance and lock the file)
get_file
Definition: Returns the file handle of the file even if a file name was passed
has_file
Definition: this is used to see if the file loaded correctly.
clear_file
Definition: this clears (and unlocks) the file handle
Delegated Methods
closes the file handle
file_type
Definition: This stores the file type for this file. The type defaults to 'zip' for this reader.
Default: zip
Range: 'zip'
attribute methods Methods provided to adjust this attribute
get_file_type
Definition: returns the attribute value
workbook_inst
Definition: This attribute holds a reference to the top level workbook (parser). The purpose is to use some of the methods provided there.
Default: no default
Required: not strictly for this class but the attribute is provided to give self referential access to general workbook settings and methods for composed classes that inherit this a base class.
Range: isa => 'Spreadsheet::Reader::ExcelXML::Workbook'
attribute methods Methods provided to adjust this attribute
set_workbook_inst
set the attribute with a workbook instance
Delegated Methods (required) Methods delegated to this module by the attribute. All methods are delegated with the method name unchanged. Follow the link to review documentation of the provider for each method. As you can see several are delegated through the Workbook level and don't originate there.
Methods
These are the methods provided by this class.
extract_file( $zip_sub_file )
Definition: This will pull a subfile from the zipped package using the Archive::Zip method memberNamed and load it to a new 'IO::File->new_tmpfile' file handle.
Accepts: $zip_sub_file compliant with the Archive::Zip method 'memberNamed'
Returns: an IO::File handle loaded with the extracted target sub file for reading
loaded_correctly
Definition: This will indicate if the zip reader was able to open the base file with Archive::Zip as a zip file.
Accepts: nothing
Returns: (1|0) 1 = good file
SUPPORT
TODO
1. Nothing currently
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) 2016 by Jed Lund
DEPENDENCIES
Spreadsheet::Reader::ExcelXML - the package
SEE ALSO
Spreadsheet::Read - generic Spreadsheet reader
Spreadsheet::ParseExcel - Excel binary version 2003 and earlier (.xls files)
Spreadsheet::XLSX - Excel version 2007 and later
Spreadsheet::ParseXLSX - Excel version 2007 and later
All lines in this package that use Log::Shiras are commented out