用Java编写word文档

时间:2013-08-15 13:06:56

标签: java

我正在尝试使用以下代码将输出字符串写入word文档:

 try {
          out = new PrintWriter(new BufferedWriter(new FileWriter("report.doc", true)));
          out.println("<html><style>"+string1+"</style><table cellspacing = 0 cellpadding = 0><tr>" + string2 + "</html>" +  (char)12);
      } catch (IOException e) {
          JOptionPane.showMessageDialog(null,  "File error " + e.getMessage());
      } finally {
          if (out != null) {
              try {
                  out.close();
              } catch (Exception ignore) {
              }
          }
      }

如果调用此方法(比如说)10次,它只会写入第一个String的信息。但是,当我将'report.doc'替换为'report.html'时,创建的html文件包含10个字符串的所有信息。

如何更改我的代码,以便它可以生成包含所有信息的word文档,就像创建的html文档一样?

1 个答案:

答案 0 :(得分:1)

您需要使用.doc处理器java库。没有文字处理器库的帮助,你需要知道.doc文件的格式,只需要知道.html文件的结构。

Apache poi就是这种图书馆的一个很好的例子。

另一种方法是使用COM桥将MS Office库移植到Java库。我一直在使用商业工具。 JACOB似乎是Java-COM桥的开源示例,但我还没有测试过这个产品。