write to existing Excel file using Perl under FreeBSD + Perl 5.005_03

I have an existing Excel template file, and I would like to update it via web form.

How can this be done?
jay28leeAsked:
Who is Participating?
 
Perl_DiverCommented:
Both of the module documentations have code examples. If you don't actually need to create the excel file from the template at the time of the update then there is no need to use the Excel::Templat module at all. I'll use the example from the XML::Simple module, the xml file:

foo.xml

<config logdir="/var/log/foo/" debugfile="/tmp/foo.debug">
  <server name="sahara" osname="solaris" osversion="2.6">
    <address>10.0.0.101</address>
    <address>10.0.1.101</address>
  </server>
  <server name="gobi" osname="irix" osversion="6.5">
    <address>10.0.0.102</address>
  </server>
  <server name="kalahari" osname="linux" osversion="2.0.34">
    <address>10.0.0.103</address>
    <address>10.0.1.103</address>
  </server>
</config>

the outline of a script to get the file into a form:

foo.pl

#!perl
use strict;
use warnings;
use CGI;
use XML::Simple;
#use Data::Dumper;
my $q = new CGI;
my $config = XMLin();
my @fields = qw(logdir debugfile);

print $q->header,
      $q->start_html,
      $q->start_form(-action => 'update.pl');
foreach my $fields (@fields) {
   print "$fields: ",
   $q->textfield(-name=>$fields,
                       -default=>$config->{$fields},
                       -size=>50,
                       -maxlength=>80),
   '<br />';  
}
print $q->submit(),
            $q->end_form,
            $q->end_html;

then update.pl gets the form data and reopens the xml file, plugs the new values into the appropriate variables, and saves the data back to the xml file using the XMLout() function. Hope that gets you started.  

***I wish this forum had a preview option***
0
 
Perl_DiverCommented:
Are you using an XML file for the template? You could probably use XML::Simple to read the XML file and get it into a CGI form you can use to update it with once again useing XML::Simple. Then you can possibly use the Excel::Template module to create the excel file.

http://search.cpan.org/author/GRANTM/XML-Simple-2.14/lib/XML/Simple.pm
http://search.cpan.org/author/RKINYON/Excel-Template-0.25/lib/Excel/Template.pm
0
 
jay28leeAuthor Commented:
Is there a simple example coding of actual usage that you can show me?

I'm not familiar with these modules.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.