Java – opens an excel file using the default program

My program successfully created and filled excel (. XLS) files Once created, I want the new file to open in the system's default program (excel in my case) How can I achieve it?

For older programs where I want to open txt files in Notepad, I use the following:

if (!Desktop.isDesktopSupported()) {
        System.err.println("Desktop not supported");
        // use alternative (Runtime.exec)
        return;
    }

    Desktop desktop = Desktop.getDesktop();
    if (!desktop.isSupported(Desktop.Action.EDIT)) {
        System.err.println("EDIT not supported");
        // use alternative (Runtime.exec)
        return;
    }

    try {
        desktop.edit(new File(this.outputFilePath));
    } catch (IOException ex) {
        ex.printStackTrace();
    }

When I try to use the excel file of this code, it gives me the following error:

java.io.IOException: Failed to edit file:C:/foo.xls

Suggestions?

Solution

Try using desktop Open () instead of desktop edit():

Desktop dt = Desktop.getDesktop();
dt.open(new File(this.outputFilePath));

If desktop If open() is not available, you can use the windows file association:

Process p = 
  Runtime.getRuntime()
   .exec("rundll32 url.dll,FileProtocolHandler " + this.outputFilePath);
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>