Автор Тема: Excel (use Perl) => txt  (Прочитано 8372 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Excel (use Perl) => txt
« Ответ #15 : 07 Августа 2002, 23:08:28 »
#!/usr/bin/perl -w
#Alexandr, я бы сделал это так:
use strict;
use Spreadsheet::ParseExcel;

print "Content-type: text/html\\n\\n";
my $filename = \'\';
my $oExcel = new Spreadsheet::ParseExcel;
if(defined $ENV{QUERY_STRING}) && $ENV{QUERY_STRING} ne \'\'){
 my @parts = split(\'&\',$ENV{QUERY_STRING});
 my ($par,$val);
 foreach(@parts){
  ($par,$val) = split(/=/,$_,2);
   if($par eq \'path\'){$filename = $val; last;}
 }
}
if($filename eq \'\'){print "

No path specified!

\\n"; exit;}
if(!(-e $filename) || !(-r $filename)){print "

File is not aviable!


Maby file not exists..\\n"; exit;}


my $oBook = $oExcel->Parse($filename);
my($iR, $iC, $oWkS, $oWkC);
print "FILE :", $oBook->{File} , "
\\n";
print "COUNT :", $oBook->{SheetCount} , "
\\n";

print "AUTHOR:", $oBook->{Author} , "
\\n"
if defined $oBook->{Author};
print "
\\n";
for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++){
 $oWkS = $oBook->{Worksheet}[$iSheet];
 print "
--------- SHEET:", $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];
   print "( $iR , $iC ) =>", $oWkC->Value, "
\\n" if($oWkC);
  }
 }
}

print "

All done.

\\n";
#Да, даный скрипт ни в какой файл ничего не записывает - он лишь выводит
# на экран содержимое. Если хочешь, я как-нибудь переделаю его на досуге,
# но чуть позже(работы завал!). Удачи!

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Excel (use Perl) => txt
« Ответ #16 : 08 Августа 2002, 09:32:46 »
Цитировать
даный скрипт ни в какой файл ничего не записывает - он лишь выводит

Да это-то я сразу понял. Я этот-то запустить не мог, не говоря уж о том чтобы сделать скрипт, который в файл пишет.
Цитировать
Если хочешь
Хочешь....
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Excel (use Perl) => txt
« Ответ #17 : 08 Августа 2002, 10:19:50 »
Serchey не могу твой скрипт запустить. Всяко уже пробовал. Ни в какую.
Пишет: No path specified!
Вот скрипт:
http://www.autodealer.ru/_proba.pl
А вот файл xls
http://www.autodealer.ru/other.xls

ЗЫ у тя ошибочка в скриптец закралась. В девятой строке "(" пропустил.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Excel (use Perl) => txt
« Ответ #18 : 08 Августа 2002, 10:56:01 »
Да, точно, пропустил.
Но Alexandr, ты набираешь http путь к файлу, вместо полного физического(хотябы относительного), потому и глюки. Предположив, что нужный файл находиться со скриптом в одной папке, я набрал вот что
http://www.autodealer.ru/_proba.pl?path=./other.xls
и получил его содержимое. Конечно, немного лажа, но уже это уже вина модулей(а не моя). А пока все. Скрипт я чуток позже постараюсь переделать. Удачи.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Excel (use Perl) => txt
« Ответ #19 : 08 Августа 2002, 11:03:16 »
Да всё ок. Понял. Я просто не знал что файл надо передавать переменной path и делал так
http://www.autodealer.ru/_proba.pl?./other.xls
и так
http://www.autodealer.ru/_proba.pl?other.xls
и полный путь тоже пробовал.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Excel (use Perl) => txt
« Ответ #20 : 08 Августа 2002, 11:09:24 »
Всё спасибо получилось.
Только он русские буквы наотрез отказывается показывать.
Может кто знает как исправить?
Или это глюк компонента Spreadsheet::ParseExcel?
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Excel (use Perl) => txt
« Ответ #21 : 08 Августа 2002, 21:57:19 »
Цитировать
Только он русские буквы наотрез отказывается показывать.
Может кто знает как исправить?
Или это глюк компонента Spreadsheet::ParseExcel?

Это не баг - это фича.:))
Документацию к модулю внимательно смотрим?
Там даже примерчик есть с использованием чарсетов.:)
2B OR NOT 2B = FF

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Excel (use Perl) => txt
« Ответ #22 : 09 Августа 2002, 09:21:18 »
Не знаю где документация. И пример тоже не нашёл.
Но вот здесь
http://search.cpan.org/doc/KWITKNR/Spreadsheet-ParseExcel-0.2602/ParseExcel.pm
Такое прочитал:
Цитировать

TextFmt($oSelf, $sText, $sCode)
converts original text into applicatable for Value.

$oSelf
Formatter itself

$sText
Original text

$sCode
Character code of Original text

Может кто скажет что куда в моём примере надо вставить?
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Unregistered

  • Гость
Excel (use Perl) => txt
« Ответ #23 : 10 Августа 2002, 17:18:52 »
добавь в начало
 my $oFmtJ = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map=>\'CP1251\');

и замениmy
$oBook = $oExcel->Parse($filename);
иа
my $oBook = $oExcel->Parse($filename, $oFmtJ );

Подозреваю что Unicode::Map придётся устоновит

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Excel (use Perl) => txt
« Ответ #24 : 15 Августа 2002, 16:26:42 »
Цитировать
Подозреваю что Unicode::Map придётся устоновит

Установил.
Но всё равно не хочет работать.
Пишет
Can\'t locate object method "new" via package "Spreadsheet::ParseExcel::FmtUnicode" at _proba.pl line 9.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28