如何使用JavaFX打开Excel文件

4
我正在制作一个项目,用户需要提供一份包含数据的文档。程序会读取数据并生成一些图表。一切都运行得很完美,但是我想在用户保存Excel文件后打开它...所以我知道Excel文件的目录,但我不知道如何在JavaFX中打开Excel文件,有人可以帮帮我吗?
此致敬礼

1
你能澄清一下吗?你是想用Java代码读取Excel文件的内容,还是想用Java代码创建Excel文件?或者你只是想自动打开一个现有的Excel文件吗? - James_D
1
我想用Excel打开一个已存在的文件 :) - MiLo
@MiLo Desktop.getDesktop().edit(File path); 应该可以做到。 - griFlo
Desktop.getDesktop().open(File path)能完成这个任务吗? - MiLo
@MiLo,正如James_D所说:使用JavaFX的方式(我不知道有这样一种东西)。 - griFlo
显示剩余2条评论
1个回答

9
JavaFX的方式是:
File excelFile = new File("/path/to/excel/file");
getHostServices().showDocument(excelFile.toURI().toURL().toExternalForm());

getHostServices()方法在Application中定义,因此如果您想在另一个类中(例如控制器)执行此操作,您需要为其他类安排访问主机服务的权限。

例如:

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...
    }
}

通过在控制器中使用明显的方法并适当修改上述代码。


很好。不知道有JavaFx的方法可以打开文档。非常感谢您的答案! - griFlo
@James_D 这个答案对于直接从Application类的start方法加载fxml非常有效。但是如果我们想在应用程序后期使用HostServices怎么办?我有点新来SO,不确定是否可以在这里问或者我必须提出一个单独的问题? - AbsoluteDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接