Storage_Lite(3) User Contributed Perl Documentation Storage_Lite(3)
NAME
OLE::Storage_Lite - Simple Class for OLE document interface.
SYNOPSIS
use OLE::Storage_Lite;
# Initialize.
# From a file
my $oOl = OLE::Storage_Lite->new("some.xls");
# From a filehandle object
use IO::File;
my $oIo = new IO::File;
$oIo->open("OLE::Storage_Lite->new($oFile);
# Read data
my $oPps = $oOl->getPpsTree(1);
# Save Data
# To a File
$oPps->save("kaba.xls"); #kaba.xls
$oPps->save('-'); #STDOUT
# To a filehandle object
my $oIo = new IO::File;
$oIo->open(">iofile.xls");
bimode($oIo);
$oPps->save($oIo);
DESCRIPTION
OLE::Storage_Lite allows you to read and write an OLE structured file.
OLE::Storage_Lite::PPS is a class representing PPS. OLE::Storage_Lite::PPS::Root,
OLE::Storage_Lite::PPS::File and OLE::Storage_Lite::PPS::Dir are subclasses of OLE::Stor-
age_Lite::PPS.
new()
Constructor.
$oOle = OLE::Storage_Lite->new($sFile);
Creates a OLE::Storage_Lite object for $sFile. $sFile must be a correct file name.
The "new()" constructor also accepts a valid filehandle. Remember to "binmode()" the file-
handle first.
getPpsTree()
$oPpsRoot = $oOle->getPpsTree([$bData]);
Returns PPS as an OLE::Storage_Lite::PPS::Root object. Other PPS objects will be included
as its children.
If $bData is true, the objects will have data in the file.
getPpsSearch()
$oPpsRoot = $oOle->getPpsTree($raName [, $bData][, $iCase] );
Returns PPSs as OLE::Storage_Lite::PPS objects that has the name specified in $raName
array.
If $bData is true, the objects will have data in the file. If $iCase is true, search is
case insensitive.
getNthPps()
$oPpsRoot = $oOle->getNthPps($iNth [, $bData]);
Returns PPS as "OLE::Storage_Lite::PPS" object specified number $iNth.
If $bData is true, the objects will have data in the file.
Asc2Ucs()
$sUcs2 = OLE::Storage_Lite::Asc2Ucs($sAsc>);
Utility function. Just adds 0x00 after every characters in $sAsc.
Ucs2Asc()
$sAsc = OLE::Storage_Lite::Ucs2Asc($sUcs2);
Utility function. Just deletes 0x00 after words in $sUcs.
OLE::Storage_Lite::PPS
OLE::Storage_Lite::PPS has these properties:
No Order number in saving.
Name
Its name in UCS2 (a.k.a Unicode).
Type
Its type (1:Dir, 2:File (Data), 5: Root)
PrevPps
Previous pps (as No)
NextPps
Next pps (as No)
DirPps
Dir pps (as No).
Time1st
Timestamp 1st in array ref as similar fomat of localtime.
Time2nd
Timestamp 2nd in array ref as similar fomat of localtime.
StartBlock
Start block number
Size
Size of the pps
Data
Its data
Child
Its child PPSs in array ref
OLE::Storage_Lite::PPS::Root
OLE::Storage_Lite::PPS::Root has 2 methods.
new()
$oRoot = OLE::Storage_Lite::PPS::Root->new(
$raTime1st,
$raTime2nd,
$raChild);
Constructor.
$raTime1st, $raTime2nd are array refs with ($iSec, $iMin, $iHour, $iDay, $iMon, $iYear,
$iHSec). $iSec means seconds, $iMin means minutes. $iHour means hours. $iDay means day.
$iMon is month -1. $iYear is year - 1900. $iHSec is seconds/10,000,000 in Math::BigInt.
$raChild is a array ref of children PPSs.
save()
$oRoot = $oRoot>->save(
$sFile,
$bNoAs);
Saves information into $sFile. If $sFile is '-', this will use STDOUT.
The "new()" constructor also accepts a valid filehandle. Remember to "binmode()" the file-
handle first.
If $bNoAs is defined, this function will use the No of PPSs for saving order. If $bNoAs
is undefined, this will calculate PPS saving order.
OLE::Storage_Lite::PPS::Dir
OLE::Storage_Lite::PPS::Dir has 1 method.
new()
$oRoot = OLE::Storage_Lite::PPS::Dir->new(
$sName,
[, $raTime1st]
[, $raTime2nd]
[, $raChild>]);
Constructor.
$sName is a name of the PPS.
$raTime1st, $raTime2nd is a array ref as ($iSec, $iMin, $iHour, $iDay, $iMon, $iYear,
$iHSec). $iSec means seconds, $iMin means minutes. $iHour means hours. $iDay means day.
$iMon is month -1. $iYear is year - 1900. $iHSec is seconds/10,000,000 in Math::BigInt.
$raChild is a array ref of children PPSs.
OLE::Storage_Lite::PPS::File
OLE::Storage_Lite::PPS::File has 3 method.
new
$oRoot = OLE::Storage_Lite::PPS::File->new($sName, $sData);
$sName is name of the PPS.
$sData is data of the PPS.
newFile()
$oRoot = OLE::Storage_Lite::PPS::File->newFile($sName, $sFile);
This function makes to use file handle for geting and storing data.
$sName is name of the PPS.
If $sFile is scalar, it assumes that is a filename. If $sFile is an IO::Handle object, it
uses that specified handle. If $sFile is undef or '', it uses temporary file.
CAUTION: Take care $sFile will be updated by "append" method. So if you want to use
IO::Handle and append a data to it, you should open the handle with "r+".
append()
$oRoot = $oPps->append($sData);
appends specified data to that PPS.
$sData is appending data for that PPS.
CAUTION
A saved file with VBA (a.k.a Macros) by this module will not work correctly. However mod-
ules can get the same information from the file, the file occurs a error in applica-
tion(Word, Excel ...).
DEPRECATED FEATURES
Older version of "OLE::Storage_Lite" autovivified a scalar ref in the "new()" constructors
into a scalar filehandle. This functionality is still there for backwards compatibility
but it is highly recommended that you do not use it. Instead create a filehandle (scalar
or otherwise) and pass that in.
COPYRIGHT
The OLE::Storage_Lite module is Copyright (c) 2000,2001 Kawai Takanori. Japan. All rights
reserved.
You may distribute under the terms of either the GNU General Public License or the Artis-
tic License, as specified in the Perl README file.
ACKNOWLEDGEMENTS
First of all, I would like to acknowledge to Martin Schwartz and his module OLE::Storage.
AUTHOR
Kawai Takanori
This module is currently maintained by John McNamara
SEE ALSO
OLE::Storage
Documentation for the OLE Compound document has been released by Microsoft under the Open
Specification Promise. See http://www.microsoft.com/interop/docs/supportingtechnolo-
gies.mspx
The Digital Imaging Group have also detailed the OLE format in the JPEG2000 specification:
see Appendix A of http://www.i3a.org/pdf/wg1n1017.pdf
perl v5.8.8 2008-02-19 Storage_Lite(3)
|