Spreadsheet::WriteExcel

Spreadsheet::WriteExcel is a Perl module which can be used to create native Excel binary files. Formatted text and numbers can be written to multiple worksheets in a workbook. Formulas and functions are also supported. It is 100% Perl and doesn't require any Windows libraries or a copy of Excel. It will also work on the majority of Unix and Macintosh platforms. Generated files are compatible with Excel 97, 2000, 2002, and 2003, and with OpenOffice and Gnumeric. An older version also supports Excel 5/95.

Tags Database Office/Business Financial Spreadsheet Office Suites Software Development Libraries
Licenses Artistic
Operating Systems OS Independent
Implementation Perl

Tweet this project Short link

Rss Recent releases

  • Rrelease-mid
  •  11 Sep 2008 06:49
  • Rrelease-after

Changes: This release fixes failing tests in the previous release due to UTF-8 handling differences between Perl 5.8 and 5.10.

  • Rrelease-mid
  •  06 Sep 2008 21:38
  • Rrelease-after

Changes: This release includes a method for setting the Excel document properties.

  • Rrelease-mid
  •  11 Aug 2008 12:34
  • Rrelease-after

Changes: This release adds data validation and drop down lists.

  • Rrelease-mid
  •  28 Jul 2008 04:09
  • Rrelease-after

Changes: This release is a minor revision that adds support for JPEG files.

  • Rrelease-mid
  •  10 Mar 2008 06:28
  • Rrelease-after

Changes: This version provides greater compatibility with third party applications that read Excel files, such as Apache POI.

Rss Recent comments

Rcomment-before 09 Jan 2006 03:51 Rcomment-trans jmcnamara Rcomment-after

Spreadsheet::WriteExcel update
Just a reminder that questions and discussions in relation to Spreadsheet::WriteExcel have moved to Google Groups.

http://groups.google.com/group/spreadsheet-writeexcel/ (http://groups.google.com/group/spreadsheet-writeexcel/)

Release and other announcements will still continue here.

Also, if you'd care to donate to the Spreadsheet::WriteExcel project, you can now do so via PayPal:

http://tinyurl.com/7ayes (http://tinyurl.com/7ayes)

John.

--

Rcomment-before 18 Nov 2005 04:17 Rcomment-trans jmcnamara Rcomment-after

Re: External link not working in sreadshee point to workseet genrated using WriteExcel

> when we try to use our genrated

> spreadsheet as extrenal link to other

> workbook using Excel 2002

See the response (http://groups.google.com/group/spreadsheet-writeexcel/browse_thread/thread/d2c86b846bf66d7e/) on the Google-Groups Spreadsheet::WriteExcel forum.

http://groups.google.com/group/spreadsheet-writeexcel/browse_thread/thread/d2c86b846bf66d7e/

John.

--

Rcomment-before 18 Nov 2005 02:01 Rcomment-trans hclodwal Rcomment-after

External link not working in sreadshee point to workseet genrated using WriteExcel
We are using Spreadsheet::WriteExcel(3) version 2.12 and perl version 5.8.6 to genrate spread sheet

when we try to use our genrated spreadsheet as extrenal link to other workbook using Excel 2002

=VLOOKUP("abc",'[XYZ.xls]Margin summary detail'!$F:$M,8,0)/1000000

It will show as #N/A

but it will start working fine after we will open the genrated file and it will work fine once we open the genrated file

part of the code we use to genrate excell file is

sub create_excel {

my $out_file_path = shift;

my $csv_data = shift;

# Create a new Excel workbook

if (not defined($out_file_path) or $out_file_path =~ /(\{|\}|\$)/) {

error "File path is not valid:";

error $out_file_path if (defined $out_file_path);

return FALSE;

}

my $dirName = dirname($out_file_path);

Deshaw::GBO::Util::Mkdir($dirName);

my $workbook = Spreadsheet::WriteExcel->new($out_file_path);

if (not defined $workbook) {

error "Failed to create workbook";

return FALSE;

}

# total margin summary detail.

my $worksheet = $workbook->add_worksheet('Margin summary detail');

# Add and define formats

my $heading_format = $workbook->add_format(); # Add a format for heading

# Format the header

$heading_format->set_align('center');

$heading_format->set_text_wrap();

#$heading_format->set_bold();

# Create default formats

my $string_format = $workbook->addformat(num_format => '@', align => 'left');

my $int_format = $workbook->addformat(num_format => '#,##0;(#,##0);-', align => 'right');

my $float_format = $workbook->addformat(num_format => '#,##0.00;(#,##0.00);-', align => 'right');

our %column_format = (

0 => $string_format,

6 => $int_format,

7 => $int_format,

8 => $int_format,

9 => $float_format,

10 => $int_format,

11 => $int_format,

12 => $int_format,

13 => $string_format,

);

my $csv = Text::CSV->new();

my $row_count = 0;

my $line;

my $fh;

# Set the first row height to 33

$worksheet->set_row(0, 33);

# Set the column width to 15

$worksheet->set_column('F:Z', 15);

my @csv_arr = split("\n",$csv_data);

foreach my $line (@csv_arr) {

$line =~ s/\n|\r//g;

if ($csv->parse($line)) {

my @field_arr = $csv->fields;

my $cols = scalar(@field_arr);

my $column_count = 0;

while($column_count < $cols ) {

my $col_format = $column_format{$column_count}

unless($cols < 2);

$col_format = $heading_format if($row_count == 0);

debug($line);

$worksheet->write($row_count, $column_count,

$field_arr[$column_count],

$col_format);

$column_count++;

$col_format = undef;

}

}

$row_count += 1;

}

$workbook->close();

return TRUE;

}

Rcomment-before 06 Oct 2005 02:31 Rcomment-trans jmcnamara Rcomment-after

Spreadsheet::WriteExcel Pre-release with Cell Comments
A pre-release of the next version of Spreadsheet::WriteExcel with support for cell comments is now available. See here (http://groups.google.com/group/spreadsheet-writeexcel/browse_frm/thread/f5802f5a6754d806/) for details.

John.

--

Rcomment-before 19 Sep 2005 04:16 Rcomment-trans jmcnamara Rcomment-after

Spreadsheet::WriteExcel update
Just a reminder that questions and discussions in relation to Spreadsheet::WriteExcel have moved to Google Groups (http://groups.google.com/group/spreadsheet-writeexcel/).

Release and other announcements will still continue here.

Also, if you'd care to donate to the Spreadsheet::WriteExcel project, you can now do so via PayPal: here (http://tinyurl.com/7ayes).

John.

--

1f85c2f53e0522d6d437d77bb6d82f60_thumb

Project Spotlight

Glade

GUI builder for GTK+ and GNOME

9adb4efe9006992d1b6feab5a44643dd_thumb

Project Spotlight

cb2Bib

A bibliographic reference extracting tool.