Модуль позволяет получить значение любой ячейки и столбца их XLS файла, что очень удобно при автоматическом парсинге различных прайсов.
Для желающих создавать XLS файлы предназначен модуль <a href="http://search.cpan.org/search?dist=Spreadsheet-WriteExcel&qu....
Оба модуля требуют для своей работы библиотеку <a href="http://search.cpan.org/search?dist=OLE-Storage_Lite">....
URL: http://search.cpan.org/search?dist=Spreadsheet-ParseExcel http://member.nifty.ne.jp/hippo2000/
Обсуждается: http://www.opennet.me/prog/info/950.shtml
Никто никогда не пробовал почитать таблички, если записи в них на русском? Я что-то никак разобраться не могу, как мне от каракуль избавиться и получить нормальный текст. Если кто подскажет, да еще и с примерами - пиво при встрече.
Другими словами - очень прошу помощи.
Я нашёл такое решение. Когда Вам модуль возвращает значения ячеек, просто перекодируйте их в cp1251:use Spreadsheet::ParseExcel;
use Encode qw(encode decode is_utf8);
#... текст программы
$oWkC = $oWkS->{Cells}[1][1]; # получаем данные$string = encode('cp1251', $oWkC->Value); # конверитруем utf8 в cp1251 ;-)
и всё!Работает с Perl 5.6.x и 5.8.x
Это так делается:
my $oExcel = new Spreadsheet::ParseExcel;
my $oFmtR = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map => "CP1251");
my $oBook = $oExcel->Parse('price.xls', $oFmtR);
>Это так делается:
>my $oExcel = new Spreadsheet::ParseExcel;
>my $oFmtR = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map => "CP1251");
>my $oBook = $oExcel->Parse('price.xls', $oFmtR);млин
вот что выдает когда вставляешь 2 сточку :(
Undefined subroutine &Spreadsheet::ParseExcel::FmtUnicode called at ./parse_xls.pl line 7
че не так ????
В поставке файлик идет - FmtUnicode.pmтебе его и надо подключить, как я понимаю
Думаю Вам просто надо поставить cpan модуль:
Unicode-Map
Скорее всего чел забыл сказать
use Spreadsheet::ParseExcel::FmtUnicode;
Странно, но у меня все равно закорючки вместо Руссского, хотя вся сделал как сказано и unicode-map у меня стоит
А как, собственно, записать данные СР1251 в экселевый файл, чтоб корректно отображался русский?
пример кода:
#---
use strict;
use Spreadsheet::WriteExcel;
my $workbook = Spreadsheet::WriteExcel->new("regions.xls");
my $worksheet = $workbook->add_worksheet('Spisok');
my $format = $workbook->add_format();
$format->set_bold();
$worksheet->write(0, 1, 'Привет!');
#---
1. Почему ячейки по-умолчанию имеют границы? (то есть "A1" и "B1") и можно-ли задать формат по-умолчанию, чтоб не было никаких бордеров?
2. Как применить формат не для ячейки, а для Range (группы ячеек)?
Подскажите пожалуйста как достать саму формулу, а не результат ее вычислений?
юзаю Spreadsheet::ParseExcel для чтения xls
текст читается (и русский тоже), а вот числа - нет. например, вместо "28,049785" читается "2..0 р .", вместо 28,12247 читается "2..1 р ."
как побороть?спасибо