我想在java中点击按钮打开新的MS Word文档 你可以建议我代码,我这样做是通过以下代码,但我认为它打开现有文件不创建新文件
class OpenWordFile {
public static void main(String args[]) {
try {
Runtime rt = Runtime.getRuntime();
rt.exec("cmd.exe /C start Employee.doc");
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Exception occured" + ex);
}
}
}
答案 0 :(得分:1)
你不能单独使用Java,至少如果你需要生成DOC文件,你需要第三个工具库Aspose。请查看this thread,否则您可以使用运行时打开现有文件。
答案 1 :(得分:1)
只有评论没有任何单词
Runtime run = Runtime.getRuntime();
String lcOSName = System.getProperty("os.name").toLowerCase();
boolean MAC_OS_X = lcOSName.startsWith("mac os x");
if (MAC_OS_X) {
run.exec("open " + file);
} else {
//run.exec("cmd.exe /c start " + file); //win NT, win2000
run.exec("rundll32 url.dll, FileProtocolHandler " + path);
}
答案 2 :(得分:1)
在最近的版本(Java 6.0)
中,Java提供了Desktop类。该类的目的是在系统中打开与给定文件关联的应用程序。因此,如果您使用Word文档(.doc)调用open()方法,则它会自动调用MS Word,因为这是与.doc文件关联的应用程序。
我开发了一个小型Swing程序(虽然您可以将其作为控制台应用程序开发),以便从用户获取文档编号并将文档调用到MSWord
。假设是;文档与filename
一起存储<document number>>.doc
。
下面是Java程序,您可以编译并按原样运行它。确保将DIR变量更改为存储.doc文件的文件夹。
以下是用Java打开Word Doc的代码...它是网络的摘录....
import java.io.File;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class WordDocument extends JFrame {
private JButton btnOpen;
private JLabel jLabel1;
private JTextField txtDocNumber;
private static String DIR ="c:\\worddocuments\\"; // folder where word documents are present.
public WordDocument() {
super("Open Word Document");
initComponents();
}
private void initComponents() {
jLabel1 = new JLabel();
txtDocNumber = new JTextField();
btnOpen = new JButton();
Container c = getContentPane();
c.setLayout(new java.awt.FlowLayout());
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Enter Document Number : ");
c.add(jLabel1);
txtDocNumber.setColumns(5);
c.add(txtDocNumber);
btnOpen.setText("Open Document");
btnOpen.addActionListener(new ActionListener() { // anonymous inner class
public void actionPerformed(ActionEvent evt) {
Desktop desktop = Desktop.getDesktop();
try {
File f = new File( DIR + txtDocNumber.getText() + ".doc");
desktop.open(f); // opens application (MSWord) associated with .doc file
}
catch(Exception ex) {
// WordDocument.this is to refer to outer class's instance from inner class
JOptionPane.showMessageDialog(WordDocument.this,ex.getMessage(),"Error", JOptionPane.ERROR_MESSAGE);
}
}
});
c.add(btnOpen);
} // initCompnents()
public static void main(String args[]) {
WordDocument wd = new WordDocument();
wd.setSize(300,100);
wd.setVisible(true);
}
}
答案 3 :(得分:1)
也许使用java.awt.Desktop可以提供帮助吗?
File f = new File("<some temp path>\\file.docx");
f.createNewFile();
Desktop.getDesktop().open(f);
创建一个新的空文档,并使用扩展的systsem specificik程序打开它。这个解决方案的优势在于它适用于所有操作系统......只要操作系统有一个程序来查看该文件。
虽然我怀疑你正在寻找可以更好地控制文件创建的东西......