11

私のプログラムは、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

提案?

4

3 に答える 3

30

Desktop.edit()の代わりにDesktop.open()を使用してみてください:

Desktop dt = Desktop.getDesktop();
dt.open(new File(this.outputFilePath));

Desktop.open()が使用できない場合は、Windowsファイルの関連付けを使用できます。

Process p = 
  Runtime.getRuntime()
   .exec("rundll32 url.dll,FileProtocolHandler " + this.outputFilePath);
于 2010-01-22T01:54:28.540 に答える
0

おそらくRuntime.execを間違って実行しました。これを見て、それが当てはまるかどうかを確認してください。

JavaでExcelファイルを開きたいだけの場合は、AndyKhanのJExcelAPIを使用することをお勧めします。おそらく、SwingJTableでそれを使用することは単なるチケットになります。

于 2010-01-22T01:34:56.320 に答える