如何用JavaFX打开Excel文件
我正在做一个项目,在这个项目中,用户必须提交一个包含数据的文档。程序读取数据并绘制一些图表。它可以很好地工作,但我想在用户保存Excel文件后打开它…所以我知道Excel文件的目录,但我不知道如何在javaFX中打开Excel文件,有人能帮我吗如何用JavaFX打开Excel文件,java,excel,javafx,Java,Excel,Javafx,我正在做一个项目,在这个项目中,用户必须提交一个包含数据的文档。程序读取数据并绘制一些图表。它可以很好地工作,但我想在用户保存Excel文件后打开它…所以我知道Excel文件的目录,但我不知道如何在javaFX中打开Excel文件,有人能帮我吗 善良的问候JavaFX实现这一点的方法是 File excelFile = new File("/path/to/excel/file"); getHostServices().showDocument(excelFile.toURI().toURL()
善良的问候JavaFX实现这一点的方法是
File excelFile = new File("/path/to/excel/file");
getHostServices().showDocument(excelFile.toURI().toURL().toExternalForm());
getHostServices()
是在应用程序中定义的,因此如果要在另一个类(例如控制器)中执行此操作,则必须安排另一个类才能访问主机服务
例如
使用控制器中的明显方法,并适当修改上述代码。您能澄清一下吗?您想用Java代码读取Excel文件的内容,还是用Java代码创建Excel文件?或者您只是有一个要用Excel自动打开的现有Excel文件吗?我想用Excel打开一个现有文件:)@MiLo Desktop.getDesktop().edit(文件路径);是否应该这样做将Desktop.getDesktop()打开(文件路径)执行此任务?是的,它可以工作!谢谢!美好的我不知道有一种javaFx方法可以打开文档。谢谢你的回答@James_D这个答案对于直接从应用程序类的start方法加载fxml非常有效。但是,如果我们想在应用程序中稍后使用HostServices呢?我有点陌生,所以不确定是可以在这里问,还是我必须问一个单独的问题?
public class MyApp extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(...);
Parent root = loader.load();
MyController controller = loader.getController();
controller.setHostServices(getHostServices());
//... setup and show scene and stage...
}
}