|
|
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) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/109805f048669.html, оценка из 5, голосов 10
|