Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Excel::Template(3)    User Contributed Perl Documentation   Excel::Template(3)

NAME
       Excel::Template - Excel::Template

SYNOPSIS
       First, make a template. This is an XML file, describing the layout of
       the spreadsheet.

       For example, test.xml:

	 <workbook>
	     <worksheet	name="tester">
		 <cell text="$HOME" />
		 <cell text="$PATH" />
	     </worksheet>
	 </workbook>

       Now, create a small program to use it:

	 #!/usr/bin/perl -w

	 use strict;

	 use Excel::Template;

	 # Create the Excel template
	 my $template =	Excel::Template->new(
	     filename => 'test.xml',
	 );

	 # Add a few parameters
	 $template->param(
	     HOME => $ENV{HOME},
	     PATH => $ENV{PATH},
	 );

	 $template->write_file('test.xls');

       If everything worked, then you should have a spreadsheet	called
       text.xls	in your	working	directory that looks something like:

		    A		     B		      C
	   +----------------+----------------+----------------
	 1 | /home/me	    | /bin:/usr/bin  |
	   +----------------+----------------+----------------
	 2 |		    |		     |
	   +----------------+----------------+----------------
	 3 |		    |		     |

DESCRIPTION
       This is a module	used for templating Excel files. Its genesis came from
       the need	to use the same	datastructure as HTML::Template, but provide
       Excel files instead. The	existing modules don't do the trick, as	they
       require replication of logic that's already been	done within
       HTML::Template.

MOTIVATION
       I do a lot of Perl/CGI for reporting purposes. In nearly	every place
       I've been, I've been asked for HTML, PDF, and Excel. HTML::Template
       provides	the first, and PDF::Template does the second pretty well. But,
       generating Excel	was the	sticking point.	I already had the data
       structure for the other templating modules, but I just didn't have an
       easy mechanism to get that data structure into an XLS file.

USAGE
   new()
       This creates a Excel::Template object.

       Parameters

       o   FILE	/ FILENAME

	   Excel::Template will	parse the template in the given	file or
	   filehandle automatically. (You can also use the parse() method,
	   described below.)

	   If you want to use the __DATA__ section, you	can do so by passing

	     FILE => \*DATA

       o   RENDERER

	   The default rendering engine	is Spreadsheet::WriteExcel. You	may,
	   if you choose, change that to another choice. The legal values are:

	   o   Excel::Template->RENDER_NML

	       This is the default of Spreadsheet::WriteExcel.

	   o   Excel::Template->RENDER_BIG

	       This attempts to	load Spreadsheet::WriteExcel::Big.

	   o   Excel::Template->RENDER_XML

	       This attempts to	load Spreadsheet::WriteExcelXML.

       o   USE_UNICODE

	   This	will use Unicode::String to represent strings instead of
	   Perl's internal string handling. You	must already have
	   Unicode::String installed on	your system.

	   The USE_UNICODE parameter will be ignored if	you are	using Perl 5.8
	   or higher as	Perl's internal	string handling	is unicode-aware.

	   NOTE: Certain older versions	of OLE::Storage_Lite and mod_perl
	   clash for some reason. Upgrading to the latest version of
	   OLE::Storage_Lite should fix	the problem.

       Deprecated

       o   BIG_FILE

	   Instead, use	RENDERER => Excel::Template->RENDER_BIG

   param()
       This method is exactly like HTML::Template's param() method.

   parse() / parse_xml()
       This method actually parses the template	file. It can either be called
       separately or through the new() call. It	will die() if it runs into a
       situation it cannot handle.

       If a filename is	passed in (vs. a filehandle), the directory name will
       be passed in to XML::Parser as the Base parameter. This will allow for
       XML directives to work as expected.

   write_file()
       Create the Excel	file and write it to the specified filename, if
       possible. (This is when the actual merging of the template and the
       parameters occurs.)

   output()
       It will act just	like HTML::Template's output() method, returning the
       resultant file as a stream, usually for output to the web. (This	is
       when the	actual merging of the template and the parameters occurs.)

   register()
       This allows you to register a class as handling a node. q.v.
       Excel::Template::Factory	for more info.

SUPPORTED NODES
       This is a partial list of nodes.	See the	other classes in this distro
       for more	details	on specific parameters and the like.

       Every node can set the ROW and COL parameters. These are	the actual
       ROW/COL values that the next CELL-type tag will write into.

       o   WORKBOOK

	   This	is the node representing the workbook. It is the parent	for
	   all other nodes.

       o   WORKSHEET

	   This	is the node representing a given worksheet.

       o   IF

	   This	node represents	a conditional expression. Its children may or
	   may not be rendered.	It behaves just	like HTML::Template's TMPL_IF.

       o   LOOP

	   This	node represents	a loop.	It behaves just	like HTML::Template's
	   TMPL_LOOP.

       o   ROW

	   This	node represents	a row of data. This is the 1 in	A1. There is
	   no COLUMN node, as of yet.

       o   FORMAT

	   This	node varies the	format for its children. All formatting
	   options supported in	Spreadsheet::WriteExcel	are supported here.
	   There are also a number of formatting shortcuts, such as BOLD and
	   ITALIC.

       o   BACKREF

	   This	refers back to a cell previously named.

       o   CELL

	   This	is the actual cell in a	spreadsheet.

       o   FORMULA

	   This	is a formula in	a spreadsheet.

       o   RANGE

	   This	is a BACKREF for a number of identically-named cells.

       o   VAR

	   This	is a variable. It is generally used when the 'text' attribute
	   isn't sufficient.

BUGS
       None, that I know of.

SUPPORT
       This is production quality software, used in several production web
       applications.

MAINTAINERS
	   Jens	Gassmann <jegade@cpan.org>
	   Robert Bohne	<rbo@cpan.org>
	   Rob Kinyon <rkinyon@cpan.org>

CONTRIBUTORS
       There is	a mailing list at http://groups.google.com/group/ExcelTemplate
       or exceltemplate@googlegroups.com

   Robert Bohne	<rbo@cpan.org>
       o   Swichting to	Module::Install

       o   Add autofilter to worksheet

   Robert Graff
       o   Finishing formats

       o   Fixing several bugs in worksheet naming

   Jens	Gassmann
       o   Add hide_gridlines to worksheet

TEST COVERAGE
       I use Devel::Cover to test the coverage of my tests. Every release, I
       intend to improve these numbers.

       Excel::Template is also part of the CPAN	Kwalitee initiative, being one
       of the top 100 non-core modules downloaded from CPAN. If	you wish to
       help out, please	feel free to contribute	tests, patches,	and/or
       suggestions.

	 ---------------------------- ------ ------ ------ ------ ------ ------	------
	 File				stmt   bran   cond    sub    pod   time	 total
	 ---------------------------- ------ ------ ------ ------ ------ ------	------
	 blib/lib/Excel/Template.pm	93.8   60.0   58.8  100.0  100.0   31.8	  83.3
	 ...ib/Excel/Template/Base.pm	94.4   50.0    n/a  100.0    0.0    4.4	  80.0
	 ...cel/Template/Container.pm  100.0   50.0   33.3  100.0    0.0    2.0	  83.3
	 ...emplate/Container/Bold.pm  100.0	n/a    n/a  100.0    0.0    0.1	  95.0
	 .../Container/Conditional.pm	95.9   90.0   66.7  100.0    0.0    0.3	  91.0
	 ...plate/Container/Format.pm  100.0	n/a    n/a  100.0    0.0    1.5	  96.8
	 ...plate/Container/Hidden.pm  100.0	n/a    n/a  100.0    0.0    0.0	  95.0
	 ...plate/Container/Italic.pm  100.0	n/a    n/a  100.0    0.0    0.0	  95.0
	 ...ainer/KeepLeadingZeros.pm  100.0  100.0    n/a  100.0    0.0    0.0	  96.3
	 ...plate/Container/Locked.pm  100.0	n/a    n/a  100.0    0.0    0.0	  95.0
	 ...emplate/Container/Loop.pm	96.8   50.0   50.0  100.0    0.0    0.1	  82.7
	 ...late/Container/Outline.pm  100.0	n/a    n/a  100.0    0.0    0.0	  95.0
	 ...Template/Container/Row.pm  100.0   75.0    n/a  100.0    0.0    0.1	  90.6
	 ...mplate/Container/Scope.pm  100.0	n/a    n/a  100.0    n/a    0.0	 100.0
	 ...plate/Container/Shadow.pm  100.0	n/a    n/a  100.0    0.0    0.0	  95.0
	 ...te/Container/Strikeout.pm  100.0	n/a    n/a  100.0    0.0    0.0	  95.0
	 ...ate/Container/Workbook.pm  100.0	n/a    n/a  100.0    n/a    7.0	 100.0
	 ...te/Container/Worksheet.pm	95.5   87.5  100.0  100.0    0.0    1.1	  90.2
	 ...Excel/Template/Context.pm	98.0   80.0   75.0  100.0   73.3   17.0	  90.7
	 ...Excel/Template/Element.pm  100.0	n/a    n/a  100.0    n/a    0.1	 100.0
	 ...mplate/Element/Backref.pm  100.0   50.0   33.3  100.0    0.0    0.1	  87.1
	 .../Template/Element/Cell.pm	97.9   75.0   80.0  100.0    0.0    5.6	  88.6
	 ...mplate/Element/Formula.pm  100.0	n/a    n/a  100.0    0.0    0.0	  94.1
	 ...te/Element/FreezePanes.pm  100.0	n/a    n/a  100.0    0.0    0.0	  95.5
	 ...Template/Element/Image.pm  100.0  100.0    n/a  100.0    0.0    0.0	  94.3
	 ...Template/Element/Range.pm  100.0   66.7    n/a  100.0    0.0    0.1	  88.9
	 ...l/Template/Element/Var.pm  100.0	n/a    n/a  100.0    0.0    0.0	  94.1
	 ...Excel/Template/Factory.pm  100.0   73.1   66.7  100.0  100.0   22.3	  91.4
	 .../Excel/Template/Format.pm	98.4   75.0   33.3  100.0   66.7    2.6	  90.5
	 ...xcel/Template/Iterator.pm	98.6   80.0   70.6  100.0   50.0    0.3	  88.8
	 ...el/Template/TextObject.pm	92.9   62.5   33.3  100.0    0.0    3.3	  80.9
	 Total				97.8   74.7   64.6  100.0   35.7  100.0	  89.4
	 ---------------------------- ------ ------ ------ ------ ------ ------	------

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.

SEE ALSO
       perl(1),	HTML::Template,	Spreadsheet::WriteExcel

perl v5.32.1			  2012-04-29		    Excel::Template(3)

NAME | SYNOPSIS | DESCRIPTION | MOTIVATION | USAGE | SUPPORTED NODES | BUGS | SUPPORT | MAINTAINERS | CONTRIBUTORS | TEST COVERAGE | COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Excel::Template&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help