#!/usr/bin/perl -w
package StdExcelFormats;
use strict;
use warnings;
BEGIN {
use Exporter;
our (@ISA, @EXPORT, %EXPORT_TAGS, $VERSION);
use Exporter;
use Spreadsheet::WriteExcel;
@ISA = qw(Exporter);
@EXPORT = qw(
%format_h1
%format_h2
%format_colhead
%format_norml
%format_normr
%format_normc
%format_boldl
%format_boldr
%format_boldc
%format_url
@landscape_lgl
%landscape_ltr
);
%EXPORT_TAGS = ( );
$VERSION = 1.00;
}
#
# Define formats
#
# Large Heading
our %format_h1 = (
bold => 1,
size => 14,
color => 'black',
align => 'left',
);
# <---snip (more hashes - variations on a theme)-->
# Page Layout - Legal, Landscape
our @landscape_lgl = (
'$worksheet->set_paper(5)',
'$worksheet->set_landscape()',
'$worksheet->set_margins_LR(.50)',
'$worksheet->set_center()',
'$worksheet->set_hide_gridlines()',
'$worksheet->set_fit_to_pages()',
);
1;
####
#!/usr/bin/perl -w -I/(path to package)
use diagnostics;
use DBI;
use Spreadsheet::WriteExcel;
use StdExcelFormats;
# Create a new Excel Workbook
my $workbook = Spreadsheet::WriteExcel->new($WorkbookName);
# Add a worksheet
my $worksheet = $workbook->addworksheet($rtr);
my $format_h1 = $workbook->add_format(%format_h1);
my $format_h2 = $workbook->add_format(%format_h2);
my $format_colhead = $workbook->add_format(%format_colhead);
my $format_norml = $workbook->add_format(%format_norml);
my $format_normr = $workbook->add_format(%format_normr);
my $format_normc = $workbook->add_format(%format_normc);
my $format_boldl = $workbook->add_format(%format_boldl);
my $format_boldr = $workbook->add_format(%format_boldr);
my $format_boldc = $workbook->add_format(%format_boldc);
my $format_url = $workbook->add_format(%format_url);
# <---snip--->
sub write_body_excel{
print "sub write_body_excel\n" if $DEBUG;
print "rid = ",$rid,"iid = ",$interface,"\n" if $DEBUG;
&make_url;
$worksheet->write_url($xlrow, 0, $url, $name, %format_url);
$worksheet->write($xlrow, 1, $description, $format_norml);
$worksheet->write($xlrow, 2, $bytesin, $format_normr);
$worksheet->write($xlrow, 3, $bytesout, $format_normr);
$worksheet->write($xlrow, 4, $ratein, $format_normr);
$worksheet->write($xlrow, 5, $rateout, $format_normr);
$worksheet->write($xlrow, 6, $utilin, $format_normr);
$worksheet->write($xlrow, 7, $utilout, $format_normr);
$worksheet->write($xlrow, 8, $maxratein, $format_normr);
$worksheet->write($xlrow, 9, $maxrateout, $format_normr);
$worksheet->write($xlrow, 10, $maxutilin, $format_normr);
$worksheet->write($xlrow, 11, $maxutilout, $format_normr);
$worksheet->write($xlrow, 12, $nfratein, $format_normr);
$worksheet->write($xlrow, 13, $nfrateout, $format_normr);
$worksheet->write($xlrow, 14, $nfutilin, $format_normr);
$worksheet->write($xlrow, 15, $nfutilout, $format_normr);
$xlrow += 1;
}
####
foreach $statement (@landscape_lgl) {
$worksheet->$statement; # line 79 - see error below
print "$worksheet->$statement","\n";
}
####
Can't locate object method "set_paper(5)" via package
"Spreadsheet::WriteExcel::Worksheet" at ./test.pl line 79 (#1)
(F) You said to do (or require, or use) a file that couldn't be
found. Perl looks for the file in all the locations mentioned in @INC,
unless the file name included the full path to the file. Perhaps you
need to set the PERL5LIB or PERL5OPT environment variable to say where
the extra library is, or maybe the script needs to add the library name
to @INC. Or maybe you just misspelled the name of the file. See
perlfunc/require and lib.
Uncaught exception from user code:
Can't locate object method "set_paper(5)" via package "Spreadsheet::WriteExcel::Worksheet" at ./test.pl line 79.
####
Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
Platform:
osname=solaris, osvers=2.8, archname=sun4-solaris
uname='sunos capacity1.telcove.com 5.8 generic_108528-19 sun4u sparc sunw,ultra-250 '
config_args='-de'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='2.95.2 19991024 (release)', gccosandvers='solaris2.8'
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='gcc', ldflags =' -L/usr/local/lib '
libpth=/usr/local/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldl -lm -lc
perllibs=-lsocket -lnsl -ldl -lm -lc
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under solaris
Compiled at Apr 25 2003 11:13:22
@INC:
/usr/local/lib/perl5/5.8.0/sun4-solaris
/usr/local/lib/perl5/5.8.0
/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris
/usr/local/lib/perl5/site_perl/5.8.0
/usr/local/lib/perl5/site_perl/5.6.0
/usr/local/lib/perl5/site_perl
.