Okay, the part we were missing is that you were reading the data with Spreadsheet::ParseExcel.

You should be able to read and write from an Excel file without intervention. Here is a working example using the Greek file generated from the example file above:

#!/usr/bin/perl use strict; use warnings; use Spreadsheet::WriteExcel; use Spreadsheet::ParseExcel; my $parser = Spreadsheet::ParseExcel->new(); my $in_workbook = $parser->Parse('unicode_8859_7.xls'); my $out_workbook = Spreadsheet::WriteExcel->new('newfile.xls'); my $out_worksheet = $out_workbook->add_worksheet(); for my $in_worksheet ( $in_workbook->worksheets() ) { my ( $row_min, $row_max ) = $in_worksheet->row_range(); my ( $col_min, $col_max ) = $in_worksheet->col_range(); for my $row ( $row_min .. $row_max ) { for my $col ( $col_min .. $col_max ) { my $cell = $in_worksheet->get_cell( $row, $col ); next unless $cell; $out_worksheet->write( $row, $col, $cell->value() ); } } }
The version of Spreadsheet::ParseExcel that you are using, 0.32, is quite old. Try upgrading to the latest, 0.55.

If that doesn't work you could try specifying an alternative parsing formatter such as S::PE::FmtUnicode or S::PE::FmtJapan (despite the name it also handles general Unicode via Encode):

... use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::FmtJapan; my $parser = Spreadsheet::ParseExcel->new(); my $formatter = Spreadsheet::ParseExcel::FmtJapan->new(); my $in_workbook = $parser->Parse('unicode_8859_7.xls', $formatter) +; ...
--
John.


In reply to Re^3: WriteExcel unicode question by jmcnamara
in thread WriteExcel unicode question by demis

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.