Aaah - I think I fought MIME::Lite on that front at one time. If you are on Windows, MIME::Lite does not always know to binmode the file used for an attachment. For .xls files, I now manually patch the mime type to application/vnd.ms-excel, which seems to do what I need, but I have old and disabled code that forced a binary attachment:
$msg->attach(
Type => $type,
Disposition => 'attachment',
Path => $filename,
Filename => basename($filename),
Binmode => 1,
);
If you are not on Windows, or that does not fix the problem, are you sure that the files to be attached have been written completely and their filehandles closed?