jacob 작업 워드 문서

3140 단어 jacob
Jacob 은 자바 - COM Bridge 의 줄 임 말로 자바 와 마이크로소프트 COM 구성 요소 사이 에 다 리 를 구축 합 니 다.Jacob 이 자체 적 으로 가지 고 있 는 DLL 동적 연결 라 이브 러 리 를 사용 하고 JNI 방식 으로 Java 플랫폼 에서 COM 프로그램 을 호출 했 습 니 다.Jacob 이 다운로드 한 주 소 는:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id = 118368 설정: (1) 압축 해제 패키지 의 jacob. dll (x86 상용, x64) 을 windows 설치 경로 의 WINDOWS \ system 32 폴 더 에 복사 (2) jacob. jar 파일 을 classpath 에 복사 하면 됩 니 다.
(3) 컴퓨터 에 office 가 설치 되 어 있 는 지 확인 하고 설치 되 어 있 지 않 으 면 설치 해 야 합 니 다. Jacob 으로 Word 를 조작 하 든 Excel 을 조작 하 든 office 가 지원 해 야 하기 때 문 입 니 다! 흔히 볼 수 있 는 문제 입 니 다.
Exception in thread  "main"  java.lang.UnsatisfiedLinkError: no jacob in java.library.path
위 에 이상 이 생 긴 것 은 dll 파일 이 없 기 때 문 입 니 다.
com.jacob.com.ComFailException: Invoke of: Open 
Source: Microsoft Office Word 
위 에 이상 이 생 긴 것 은 파일 경로 가 정확 하지 않 기 때 문 입 니 다.
cant get Object cldid from progid 
위 에 이상 이 생 긴 것 은 기계 에 워드 가 설치 되 어 있 지 않 기 때 문 입 니 다.
 
워드 문서 의 문 자 를 바 꾸 기 위해 작은 코드 를 썼 습 니 다. 붙 여 공유 하 세 요!
package test;

import com.jacob.com.*;  
import com.jacob.activeX.*;  

public class aa {
	public static void main(String[] args) {
		ActiveXComponent app = new ActiveXComponent("Word.Application");   //  word  
		String inFile = "D:\\template.doc";   //    word    
		try {  
			app.setProperty("Visible", new Variant(false));   //  word     
			Dispatch docs = app.getProperty("Documents").toDispatch();
			Dispatch doc = Dispatch.invoke(docs,"Open",Dispatch.Method,
					new Object[] { inFile, new Variant(false),new Variant(false) }, new int[1]).toDispatch();  
			//  word  ,            false,               ,
			//          ,         。  

			Dispatch selection = app.getProperty("Selection").toDispatch();//   Selection  
			Dispatch.call(selection, "HomeKey", new Variant(6));//    
			Dispatch find = Dispatch.call(selection, "Find").toDispatch();//  Find  
			Dispatch.put(find, "Text", "name");       //     "name"
			Dispatch.call(find, "Execute");           //    
			Dispatch.put(selection, "Text", "111");  //   "111"
			
			Dispatch find1 = Dispatch.call(selection, "Find").toDispatch();//  Find  
			Dispatch.call(selection, "HomeKey", new Variant(6));//    
			Dispatch.put(find1, "Text", "8       ");       //     
			Dispatch.call(find1, "Execute");           //    
			Dispatch.put(selection, "Text", "222");
			
			String newFileName = "D:\\temp.doc"; 
			Dispatch.call(doc, "SaveAs",newFileName);  //    
			Dispatch.call(doc, "Close", new Variant(false));
			System.out.println("is over");
			} catch (Exception e) {  
				e.printStackTrace();
			}finally{
				app.invoke("Quit",new Variant[]{});
				app.safeRelease();
			}
	}
}

좋은 웹페이지 즐겨찾기