Открытие файла 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 будет просто билетом.