in reply to Open a file the way Ctrl+O works

You know about the system command, right? I would recommend the multi-argument version, e.g., something along these lines...

system($path_to_excel, $path_to_file);

There is also Spreadsheet::ParseExcel. The benefits of going that way are twofold: the script can then do stuff with the file, and you don't have to have Excel installed in order to do it. However, I think the system command is closer to what you were asking for. This means you need Excel (or some equivalent program that can open its files, e.g., OpenOffice.org) installed on every computer where you plan to run the thing, and it also means the script can't do anything useful with the file; it just opens for the user to work with, that's all. But I think that's what you were asking for.