Comments 14
еще расскажите как «Хелло Ворлд!» писать :-D
Если уж на то пошло, то
cpan.uwinnipeg.ca/search?query=Excel&mode=dist
А там есть такие вещи, как, например Spreadsheet::SimpleExcel
use Spreadsheet::SimpleExcel;
binmode(\*STDOUT);
# data for spreadsheet
my @header = qw(Header1 Header2);
my @data = (['Row1Col1', 'Row1Col2'], ['Row2Col1', 'Row2Col2']);
# create a new instance
my $excel = Spreadsheet::SimpleExcel->new();
# add worksheets
$excel->add_worksheet('Name of Worksheet',{-headers => \@header, -data => \@data});
$excel->add_worksheet('Second Worksheet',{-data => \@data});
$excel->add_worksheet('Test');
# add a row into the middle
$excel->add_row_at('Name of Worksheet',1,[qw/new row/]);
# sort data of worksheet — ASC or DESC
$excel->sort_data('Name of Worksheet',0,'DESC');
# remove a worksheet
$excel->del_worksheet('Test');
# sort worksheets
$excel->sort_worksheets('DESC');
Есть еще замечательная штука Excel::Template, которая работает примерно так. Делаем шаблон с помощью XML:
<workbook>
<worksheet name=«tester»>
<cell text="$HOME" />
<cell text="$PATH" />
</worksheet>
</workbook>
И создаем Excel-файл:
use Excel::Template;
# Create the Excel template
my $template = Excel::Template->new(
filename => 'test.xml',
);
# Add a few parameters
$template->param(
HOME => $ENV{HOME},
PATH => $ENV{PATH},
);
$template->write_file('test.xls');
А так же модуль для Catalyst, плагин для Template Toolkit, куча парсеров и write-ров этих файлов, DBI драйвер, конвертор в XML. Эх, сделали бы уже полный обзор…
cpan.uwinnipeg.ca/search?query=Excel&mode=dist
А там есть такие вещи, как, например Spreadsheet::SimpleExcel
use Spreadsheet::SimpleExcel;
binmode(\*STDOUT);
# data for spreadsheet
my @header = qw(Header1 Header2);
my @data = (['Row1Col1', 'Row1Col2'], ['Row2Col1', 'Row2Col2']);
# create a new instance
my $excel = Spreadsheet::SimpleExcel->new();
# add worksheets
$excel->add_worksheet('Name of Worksheet',{-headers => \@header, -data => \@data});
$excel->add_worksheet('Second Worksheet',{-data => \@data});
$excel->add_worksheet('Test');
# add a row into the middle
$excel->add_row_at('Name of Worksheet',1,[qw/new row/]);
# sort data of worksheet — ASC or DESC
$excel->sort_data('Name of Worksheet',0,'DESC');
# remove a worksheet
$excel->del_worksheet('Test');
# sort worksheets
$excel->sort_worksheets('DESC');
Есть еще замечательная штука Excel::Template, которая работает примерно так. Делаем шаблон с помощью XML:
<workbook>
<worksheet name=«tester»>
<cell text="$HOME" />
<cell text="$PATH" />
</worksheet>
</workbook>
И создаем Excel-файл:
use Excel::Template;
# Create the Excel template
my $template = Excel::Template->new(
filename => 'test.xml',
);
# Add a few parameters
$template->param(
HOME => $ENV{HOME},
PATH => $ENV{PATH},
);
$template->write_file('test.xls');
А так же модуль для Catalyst, плагин для Template Toolkit, куча парсеров и write-ров этих файлов, DBI драйвер, конвертор в XML. Эх, сделали бы уже полный обзор…
Это был первый пост на Хабре… так сказать пробный 0:)
Выбор именно OLE был обусловлен тем, чтобы не плодить кучу модулей на компе, т.к. требуется еще обработка текстов в MS Word. К тому же это всего лишь необходимый минимум :)
Но вообще верное замечание — сравнение + и — разных методов можно было сделать. На досуге постараюсь ;)
Выбор именно OLE был обусловлен тем, чтобы не плодить кучу модулей на компе, т.к. требуется еще обработка текстов в MS Word. К тому же это всего лишь необходимый минимум :)
Но вообще верное замечание — сравнение + и — разных методов можно было сделать. На досуге постараюсь ;)
Почему бы просто в csv не сохранять? Как по мне — весьма простое и универсальное решение. С задачей открыть в экселе прекрасно справится.
Правильно понимаете. Лично у меня в конторе до сих пор юзают винду и офис, а применяется очень просто — есть БД, из которой печатаются отчеты ;)
Если уж использовать Perl, то лучше делать скрипт кроспалатформенным. Например на Unix-сервере те же самые отчеты генерить. А если windows-only, то имхо .NET самое здесь будет.
На моей практике часто сталкиваешься с тем что сейчас оно работает, но рано или поздно упрешься в ограничение модуля или с тем что просто он морально устарел.
На моей практике часто сталкиваешься с тем что сейчас оно работает, но рано или поздно упрешься в ограничение модуля или с тем что просто он морально устарел.
Недавно как раз генерировал лист Excel для отчетов. Только я xml-ку создавал. Описание формата можно на msdn.microsoft.com найти. Да и не на перле, а на tcl с помощью библиотеки tdom.
Sign up to leave a comment.
Perl & MS Excel