Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Alexander P. Russkih                 2:468/75       14 Mar 2004  23:01:21
 To : All
 Subject : Re: xls в html
 -------------------------------------------------------------------------------- 
 
 vasily@tut.by wrote:
 
 > Hу, у меня такие же условия. Spreadsheet::ParseExcel прекрасно справляется с
 > задачей, только русский текст в utf получается. Для перевода в win1251 юзаю
 > самодельный myExcelParser, унаследованный от Spreadsheet::ParseExcel.
 > 
 >  my $xls = myExcelParser->read(shift) or die $!;
 >  foreach my $sheet ($xls->sheets) {
 >   while ($sheet->has_data) {
 >    my @data = $sheet->next_row;
 >    print join "\t", @data; # или другие действия со списком ячеек
 >   }
 >  }
 
 Hу? значит попорядку.
 Приведенный выше код у меня не работает! Возможно мы пользуемся разными 
 Spreadsheet? У меня старушка:
 # Spreadsheet::ParseExcel
 #  by Kawai, Takanori (Hippo2000) 2000.10.2
 #                                 2001. 2.2 (Ver. 0.15)
 из поставки Linux Debian/Woody r1.
 
 Выполнение следующего кода не дает никаких результатов, если значения ячеек 
 нарисованы на русском языке, хотя впринципе работает:
 ===
 #!/usr/bin/perl
 use strict;
 use English;
 use Spreadsheet::ParseExcel;
 use Spreadsheet::ParseExcel::FmtUnicode;
 
 my $oExcel = new Spreadsheet::ParseExcel;
 
 my $oBook = $oExcel->Parse('../../video.xls');
 my($iR, $iC, $oWkS, $oWkC);
 print "ФАЙЛ  :", $oBook->{File} , "\n";
 print "ЛИСТОВ:", $oBook->{SheetCount} , "\n";
 print "АВТОР :", $oBook->{Author} , "\n";
 
 # цикл по листам
 for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
    $oWkS = $oBook->{Worksheet}[$iSheet];
    print "--------- ЛИСТ:", $oWkS->{Name}, "\n";
 
    # цикл по строкам в листе
    for(my $iR = $oWkS->{MinRow} ;
        defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ;
        $iR++) {
 
      # цикл по колонкам
      for(my $iC = $oWkS->{MinCol} ;
          defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ;
          $iC++) {
 
        $oWkC = $oWkS->{Cells}[$iR][$iC];
        if($oWkC) {
 
          my $Value = $oWkC->{Val};
          my $Ucs2 = new Spreadsheet::ParseExcel::FmtUnicode;
          my $ValUcs2 = $Ucs2->TextFmt($Value, $oWkC->{Code});
        
          print "Ячейка($iR,$iC) $oWkC->{Code} =>", $Value,   "\n";
          print "Ячейка($iR,$iC) $oWkC->{Code} =>", $ValUcs2, "\n";
 
        }
      }
    }
 }
 ===
 
 Внимание вопрос: что можно добавить в вышеприведенный код, чтобы научить его 
 понимать русские значения в ячейках экселевской таблицы?
 
 -- 
 XMMS:
 
 --- Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007
  * Origin: Registered Linux User #341226 (2:468/75@fidonet)
 
 

Вернуться к списку тем, сортированных по:

 Тема:    Автор:    Дата:  
 xls в html   Alexander Lunkov   08 Mar 2004 00:36:14 
 xls в html   Dmitry Diskin   08 Mar 2004 14:49:45 
 Re: xls в html   Alexander P. Russkih   10 Mar 2004 08:09:17 
 xls в html   Vasily Lazerko   11 Mar 2004 16:57:25 
 Re: xls в html   Alexander P. Russkih   14 Mar 2004 23:01:21 
 xls в html   Vasily Lazerko   15 Mar 2004 18:01:35 
 Re: xls в html   Grygory Tertychny   10 Mar 2004 01:55:59 
 Re: xls в html   Victor Wagner   10 Mar 2004 13:12:28 
Архивное /ru.cgi.perl/109805f048669.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional