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

close

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.

"set_error( $error_string )" in Spreadsheet::Reader::ExcelXML::Error

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

github Spreadsheet::Reader::ExcelXML/issues

TODO

1. Nothing currently

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) 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

Log::Shiras

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