Моя программа успешно создает и заполняет 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
Предложения?
Старайтесь использовать рабочий стол. Открыть () вместо 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);
Вы, вероятно, сделали неправильное время. Дайте это Посмотрите, если это так.
Если вы просто хотите открыть файл Excel с Java, я бы порекомендовал использовать Andy Khan's Jexcel API. Возможно, используя это с качанием JTable будет просто билет.