我现在要用jacob操作word将里面的某些字符串替换成另外的字符串,同时要在word里添加表格,请问各位如何能实现这个需求!
谢谢指教

解决方案 »

  1.   

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@ page import = "java.io.*" %>
    <%@ page import="com.jacob.com.*"%>   
    <%@ page import="com.jacob.activeX.*"%> 
    <%       String sDir = "e:\\test\\"; 
        String sInputDoc = sDir + "abc.doc"; 
        String sOutputDoc = sDir + "out.doc"; 
        String sOldText = "abc"; 
        String sNewText = "I am some horribly long sentence, so long that [insert bullshit here]"; 
        boolean tVisible = true; //是否显示整个过程
        boolean tSaveOnExit = false; 
       ActiveXComponent oWord = new ActiveXComponent("Word.Application"); 
       oWord.setProperty("Visible", new Variant(tVisible));
       
       
       Dispatch oDocuments = oWord.getProperty("Documents").toDispatch(); 
       Dispatch oDocument = Dispatch.call(oDocuments, "Open", sInputDoc).toDispatch(); 
       
       Dispatch oSelection = oWord.getProperty("Selection").toDispatch(); 
       Dispatch oFind = oWord.call(oSelection, "Find").toDispatch();     Dispatch.put(oFind, "Text", sOldText); 
        Dispatch.call(oFind, "Execute"); 
        Dispatch.put(oSelection, "Text", sNewText); 
        
        Dispatch.call(oSelection, "MoveDown"); 
        Dispatch.put(oSelection, "Text", "\nSo we got the next line including BR.\n"); 
          
        Dispatch oFont = Dispatch.get(oSelection, "Font").toDispatch(); 
        Dispatch.put(oFont, "Bold", "1"); 
        Dispatch.put(oFont, "Italic", "1"); 
        Dispatch.put(oFont, "Underline", "0");
        
        String sImgFile = sDir + "abc.jpg"; 
        Dispatch.call(oSelection, "MoveDown"); 
        Dispatch oImage = Dispatch.get(oSelection, "InLineShapes").toDispatch(); 
        Dispatch.call(oImage, "AddPicture", sImgFile); 
        
        
        Dispatch oWordBasic = Dispatch.call(oWord, "WordBasic").getDispatch(); 
        Dispatch.call(oWordBasic, "FileSaveAs", sOutputDoc);
        
        Dispatch.call(oDocument, "Close", new Variant(tSaveOnExit)); 
        oWord.invoke("Quit", new Variant[0]); 
        
        
    out.println("sss");%>