这是我写的一段代码 把一个字符串写到Word中import java.io.*;import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;public class WriteWordDemo
{   
public static void main(String[] args)
    {   
        WriteWord write = new WriteWord();
       
        write.writeWordFile("D:\\a.doc", "aaaa\naaaaaa\naaaaaaaa\naaaa");
    }
}   class WriteWord
{
public boolean writeWordFile(String path, String content) 
    {   
        boolean w = false;   
        try 
        {   
byte b[] = content.getBytes();   
               
            ByteArrayInputStream bais = new ByteArrayInputStream(b);   
      
            POIFSFileSystem fs = new POIFSFileSystem();   
            DirectoryEntry directory = fs.getRoot();   
      
            DocumentEntry de = directory.createDocument("WordDocument", bais);   
      
            FileOutputStream ostream = new FileOutputStream(path);   
      
            fs.writeFilesystem(ostream);   
               
            bais.close();   
            ostream.close();   
      
        } 
        catch (IOException e) 
        {   
            e.printStackTrace();   
        }   
      
        return w;   
    }
}为什么打开的时候提示"需要安装转换器才能正确显示该文件"?
怎么写才能正常显示啊?

解决方案 »

  1.   

    那应该是你Word的事情吧。。好像不是代码的问题
    如果你的Word没有问题的话。你换下字体。有可能是字体的问题。
    因为在Word中不同的字体有的时候显示出来的形状也是不一样的。
    您可以试着解决下
      

  2.   

    Word应该没问题吧 
    你执行这段代码生成的Word打开不需要进行字体转换?在代码中怎么进行Word的字体设置并保存啊?如果是打开Word再去设置字体 用一般的文件保存对话框JFileChooser,保存文件名填a.doc就能保存成Word,根本不需要再用POI了.但是这样的Word文件打开有问题啊!!
    我现在要的就是一切在代码中搞定 而不是打开Word再去设置字体.各位大虾救命啊
      

  3.   

    我的Word就可以。是你的Word的问题
      

  4.   

    ?请问一下楼上的 你新建一个txt文档,里面随便打几个字,再把扩展名txt改成doc,
    这种方式保存成一个Word文档你用这种方式保存成的Word文档打开有没有问题
    打开的时候有没有提示"需要安装转换器才能正确显示该文件"?
      

  5.   

    再问下 你是Word2000 还是2003?
      

  6.   

    另外再问下 我就添加了
    poi-3.0-alpha3-20061212.jar
    poi-contrib-3.0-alpha3-20061212.jar
    poi-scratchpad-3.0-alpha3-20061212.jar
    这三的包到classpath里面还需不需要进行其他的设置