Открытие файла Excel с помощью программы по умолчанию

моя программа успешно создает и заполняет файл Excel(.xls-файл. После создания я хотел бы, чтобы новый файл открылся в программе системы по умолчанию (Excel в моем случае). Как я могу достичь этого?

для старой программы, где я хотел открыть txt-файл в блокноте, я использовал следующее:

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();
    }

когда я пытаюсь использовать этот код для файла Excel, это дает мне следующую ошибку:

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

предложения?

3 ответов


попробуйте использовать Desktop.open () вместо Desktop.edit ():

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

Если Рабочий Стол.open () недоступен, тогда можно использовать ассоциацию файлов Windows :

Process p = 
  Runtime.getRuntime()
   .exec("rundll32 url.dll,FileProtocolHandler " + this.outputFilePath);

вы, вероятно, сделали время выполнения.старпома неправильно. Дай!--1-->этой посмотреть, так ли это.

Если вы просто хотите открыть файл Excel с Java, я бы рекомендовал использовать JEXCEL API Энди Хана. Возможно, использование этого с помощью Swing JTable будет просто билетом.


самый простой и эффективный способ.

Desktop.getDesktop().open(new File("inputFilePath"));