Если у вас установлен Excel, то это почти тривиально, чтобы сделать это с помощью Win32::OLE
. Вот пример из собственной документации Win32::OLE
«s:
use Win32::OLE;
# use existing instance if Excel is already running
eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')};
die "Excel not installed" if [email protected];
unless (defined $ex) {
$ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
or die "Oops, cannot start Excel";
}
# get a new workbook
$book = $ex->Workbooks->Add;
# write to a particular cell
$sheet = $book->Worksheets(1);
$sheet->Cells(1,1)->{Value} = "foo";
# write a 2 rows by 3 columns range
$sheet->Range("A8:C9")->{Value} = [[ undef, 'Xyzzy', 'Plugh' ],
[ 42, 'Perl', 3.1415 ]];
# print "XyzzyPerl"
$array = $sheet->Range("A8:C9")->{Value};
for (@$array) {
for (@$_) {
print defined($_) ? "$_|" : "<undef>|";
}
print "\n";
}
# save and exit
$book->SaveAs('test.xls');
undef $book;
undef $ex;
В принципе, Win32::OLE
дает вам все, что доступно на VBA или Visual Basic приложение, которое включает в себя огромное разнообразие вещей - все, начиная от автоматизации Excel и Word, перечислить и установить сетевые диски через Windows Script Host. Он стал стандартным с последними версиями ActivePerl.
Я не вижу никакого способа написать книгу Excel, используя ParseExcel – user105033
Таблицы :: ParseExcel :: SaveParser сделает это. вы избили мое редактирование. :) – Ether