Открытие файла 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

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

11
задан clang1234 22 January 2010 в 01:23
поделиться

2 ответа

Старайтесь использовать рабочий стол. Открыть () вместо 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);
30
ответ дан 3 December 2019 в 02:52
поделиться

Вы, вероятно, сделали неправильное время. Дайте это Посмотрите, если это так.

Если вы просто хотите открыть файл Excel с Java, я бы порекомендовал использовать Andy Khan's Jexcel API. Возможно, используя это с качанием JTable будет просто билет.

0
ответ дан 3 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: