импорт файлов excel под сабжем
![](http://mediasubs.ru/author/avatar/4015861.png)
Здравствуйте comp.soft.linux.discuss-list@subscribe.ru !
Уважаемые!
А никто не пытался импортировать файлы M$ Excel под линухом?
Задача - нужно конвертнуть екселевский файл во что-то читабельное,
например файл с разделителями, а потом засунуть в БД.
Пытаюсь импортировать перловым Spreadsheet::ParseExcel или
Spreadsheet::BasicRead, английский текст читается хорошо, и числа и
т.п., а русский никак. Пробовал ковертировать с помощью iconv,
попробовал все известные ей кодировки, успеха не добился. Пробовал
по всякому, вручную перебирал все кодировки кириллицы, потом решил
перебрать их в цикле:
(на UCS и некоторых ISO кодировках останавливается - какие-то
управляющие символы лезут, ждет какого-то ввода...)
for i in `iconv --list|grep //|grep -v UCS|grep -v ISO-10646`; do
enc=`echo $i|sed -e 's/\///g'`;
echo Doing encoding $enc;
echo Encoding is $enc >> test.out;
./xl1.pl ./test.xls $enc >> test.out
done
xl1.pl - скрипт из примера с cpan, делает следующее:
#!/usr/bin/perl
use strict;
use Text::Iconv;
my $encoding = $ARGV[1];
my $file = $ARGV[0];
my $converter = Text::Iconv->new($encoding, "UTF-8");
#локаль у меня UTF-8
use Spreadsheet::ParseExcel;
my $oBook = Spreadsheet::ParseExcel::Workbook->Parse($file);
my($iR, $iC, $oWkS, $oWkC);
foreach my $oWkS (@{$oBook->{Worksheet}}) {
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 ) =>", $converter->convert($oWkC->Value), "\n" if($oWkC);
}
}
}
все, как в примере, только кодировка передается параметром, чтоб из
скрипта подсунуть.
Пришло мне в голову, что может, там не кодировка, а как-нибудь хитро
закодировано, с этими товарищами все может быть.
Может кто победил, ткните пальцем... Очень надо.
ЗЫ - видел еще штуку на питоне, которая через OLE лезет на виндовую
машину, на которой установлен офис... - не подходит, нет такой
виндовой машины, да и слишком сложно для меня.
С уважением,
Степанов Е.Н.
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 21667; Возраст листа: 788; Участников: 1422
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/440724
Hello, Evgeny!
on Tue, 20 Sep 2005 21:31:46 +0400 you wrote:
А xls2csv вам не подойдет? Вроде никаких проблем с кодировками. У меня, правда,
кои8.
--
Best regards,
Denis
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 21669; Возраст листа: 788; Участников: 1422
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/440787