Problem mit öffnen von Excel-Datei

Habe mir unter Windows ein Perl-Script geschrieben, welches eine Excel-Datei erstellt, diese an eine Notes-Mail anhängt und dann verschickt.

Das mache ich mit den Modulen Spreadsheet::WriteExcel und Win32::open_mouth:LE

Funktioniert soweit auch alles, nur wenn ich die angehängte Excel-Datei öffnen will, dann bekomme ich die Fehlermeldung „Sie versuchen eine Datei zu öffnen, ‚bla.xls‘, deren Format von dem in der Dateierweiterung angegebenen abweicht…“

Wenn man mit Ja bestätigt, ist die Datei leer. Ein Öffnen der Originaldatei funktioniert ohne Probleme…

$workbook = Spreadsheet::WriteExcel->new($excel); -> Excel erstellen

sub sendMail {
sub EMBED_ATTACHMENT {1454;} # from LotusScript

Mail-Datenbank öffnen

my $notes = Win32::open_mouth:LE->new(‚Notes.NotesSession‘) or die „Can’t open Lotus Notes“;
my $database = $notes->GetDatabase(’$server’,‚mail/xyz.nsf‘);
#my $database = $notes->GetDatabase(’$server’,‚mailin/abc.nsf‘);
$database->OpenMail;

my $Document = $database->CreateDocument;
my $FileNumber = $1;

$Document->AppendItemValue („Form“, „Memo“);
$Document->AppendItemValue („SendTo“, ‚[email protected]‘);
$Document->AppendItemValue („Subject“, „bla“);

my $Body = $Document->CreateRichtextItem(‚Body‘);
$Body->AppendText(„blabla\n\n“);
$Body->EmbedObject (EMBED_ATTACHMENT, „“, „$excel“); # Datei anhängen

$Document->Send(0);
}

Weiß jemand Rat?

Hallo,

Das mache ich mit den Modulen Spreadsheet::WriteExcel und
Win32::open_mouth:LE

Funktioniert soweit auch alles, nur wenn ich die angehängte
Excel-Datei öffnen will, dann bekomme ich die Fehlermeldung
„Sie versuchen eine Datei zu öffnen, ‚bla.xls‘, deren Format
von dem in der Dateierweiterung angegebenen abweicht…“

Wenn man mit Ja bestätigt, ist die Datei leer. Ein Öffnen der
Originaldatei funktioniert ohne Probleme…

$workbook = Spreadsheet::WriteExcel->new($excel); -> Excel
erstellen

Zwingest du Spreadsheet::WriteExcel irgendwann dazu, die Datei zu schreiben, indem du $workbook->close() aufrufst?

Aus der Dokumentation:

An explicit close() is required if the file must be closed prior to performing some external action on it such as copying it, reading its size or attaching it to an email.

Grüße,
Moritz

Tatsache, das war´s :smile: Hätte man vielleicht selbst drauf kommen können, aber vielen Dank für Deine schnelle Hilfe…