日期:2014-05-20  浏览次数:20839 次

java操作word的组件(或技术)有哪些?
java操作word的组件(或技术)有哪些?
比如我已经知道的:
1、aspose
2、jacob
3、itext
java 操作word

------解决方案--------------------
poi
------解决方案--------------------
我用过 jacob  还比较好使吧
------解决方案--------------------
jodconverter 调用openoffice
------解决方案--------------------
poi技术吧,挺好用的,也很简单。。poi可以操作word,excel等等
------解决方案--------------------
1.1 添加poi支持:包下载地址 http://www.apache.org/dyn/closer.cgi/poi/release/

1.2 POI对Excel文件的读取操作比较方便,POI还提供对Word的DOC格式文件的读取。但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩展的Jar包。下载地址为 http://www.ibiblio.org/maven2/org/textmining/tm-extractors/0.4/ 下载extractors-0.4_zip这个文件

package com.ray.poi.util;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.textmining.text.extraction.WordExtractor;

/**
* 读写doc
* @author wangzonghao
*
*/
public class POIWordUtil {
/**
  * 读入doc
  * @param doc
  * @return
  * @throws Exception
  */
public static String readDoc(String doc) throws Exception {
     // 创建输入流读取DOC文件
      FileInputStream in = new FileInputStream(new File(doc));
      WordExtractor extractor = null;
      String text = null;
     // 创建WordExtractor
      extractor = new WordExtractor();
     // 对DOC文件进行提取
      text = extractor.extractText(in);
     return text;
}
/**
  * 写出doc
  * @param path
  * @param content
  * @return
  */
public static boolean writeDoc(String path, String content) { 
     boolean w = false; 
    try { 

    // byte b[] = content.getBytes("ISO-8859-1"); 
    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; 
    } 

}
测试

package com.ray.poi.util;

import junit.framework.TestCase;

public class POIUtilTest extends TestCase {

public void testReadDoc() {
  try{
            String text = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc");
            System.out.println(text);
         }catch(Exception e){
             e.printStackTrace();
         }

}

public void testWriteDoc() {
     String wr;
  try {
   wr = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc");

    boolean b = POIWordUtil.writeDoc("c:\\demo.doc",wr); 
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();