【问题标题】:Using Java, how do I cause Word to open and edit a file? [duplicate]使用 Java,如何使 Word 打开和编辑文件? [复制]
【发布时间】:2011-08-09 05:03:50
【问题描述】:

可能重复:
Open excel document in java

我的 Java 应用程序中有一个按钮,单击该按钮后,Word 会打开特定文件。该文件位于文件系统中的某个位置,例如用户的文档目录中。

如何在 Java 中实现这样的功能?

【问题讨论】:

标签: java ms-word


【解决方案1】:

这里是简单的Demo App,你可以修改一下按钮点击事件:

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;

public class Test {
 public static void main(String[] a) {
   try {
     if (Desktop.isDesktopSupported()) {
       Desktop.getDesktop().open(new File("c:\\a.doc"));
     }
   } catch (IOException ioe) {
     ioe.printStackTrace();
  }
}

}

这将使用默认的 word 应用程序打开 word 文件。 Desktop的更多细节在这里

【讨论】:

  • “这将使用 MS word 应用程序打开 word 文件。” 如果 OO 是 Word 文档的默认使用者,则不会。 ;) @Sarah 您可能还想查看同一类的 edit(File) 方法。
  • @Andrew:谢谢,更新了..!!
  • 出色的工作。我会投票,但我之前已经这样做了。 ;)
  • 不错的提示,打开文件很简单
【解决方案2】:

一种方法是执行默认程序通过shell打开文档。

在 Windows 上:

Process p = Runtime.getRuntime()
                .exec("rundll32 url.dll,FileProtocolHandler C:/Path/To/Word.doc");
p.waitFor();
System.out.println("Done.");

苹果机:

Process p = Runtime.getRuntime().exec("open /Documents/word.doc");

来自 - http://www.rgagnon.com/javadetails/java-0014.html

【讨论】:

  • Windows 不需要使用rundll:Runtime.getRuntime().exec("start /Documents/word.doc");。这假定扩展名 .doc 与 MS Word 相关联。但是使用 Desktop 类要好得多,因为它独立于平台
  • @a_horse_with_no_name:我希望你是对的。桌面在某些 Windows 平台上崩溃 :-( ,所以这实际上很有用。
  • @Nathan Hughes:我既没有听说过,也没有亲身体验过,自 Java6 发布以来我一直在使用。
  • @a_horse_with_no_name:几周前我在这里发生过这种情况,java.awt.Desktop 导致我的程序在 Windows XP 机器上崩溃。否则我很可能也不会认真对待这件事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
相关资源
最近更新 更多