There is one other option Corion
didn't cover, one which I tend to use because it is very simple, but then it's also fairly limited. I monitor the Windows clipboard using Win32::Clipboard
and then I select and copy cells in Excel, munge them as needed in Perl, and past them back to the clipboard. From there I can paste the results in Excel anywhere I like. I have even used the first cell as a "command" to the perl script. This works well for data cleaning tasks at least, maybe it will be suitable for your needs.
I'd like to be able to assign to an luser