자바 작업 워드 문서 표 에 테두리 난호 문제 가 있 습 니 다.

27148 단어 exception
최근 에 회사 의 수요 로 인해 jacob 의 부분 을 사 용 했 고 접촉 한 적 이 없 으 며 일부 문 제 는 시간 이 좀 걸 렸 습 니 다.다음은 자신의 정리 입 니 다. 대부분 전재 되 었 고 자신 도 다음 과 같은 것들 을 추 가 했 습 니 다. 표 에 테두리 가 있 습 니 다.난 장 판 문제 의 해결 방법.앞으로 사용 할 하 얀 corder 에 도움 이 되 었 으 면 좋 겠 습 니 다!
우선, 여러분 은 먼저 jacob 에 대해 알 아 보 셔 야 합 니 다. 공식 적 인 설명 은 자바 COM Bridge, 즉 자바 와 come 구성 요소 간 의 다리 입 니 다. 여기 서 왜 우리 가 jacob 로 워드 를 조종 하 는 지 말씀 드 리 겠 습 니 다.자바 로 직접 하지 않 고?
이 이유: 자바 오픈 소스 세계 에서 Word 문 서 를 조작 하 는 좋 은 도구 가 없습니다. POI 는 워드 작업 이 완선 되 지 않 아서 워드 문 서 를 쉽게 조작 하여 우리 의 수 요 를 만족 시 킬 수 없습니다.이에 비해 jacob 를 사용 하여 워드 문 서 를 조작 하 는 것 이 매우 편리 합 니 다.비교적 쉽다.
 
1. 먼저 poi 로 읽 는 방법 을 말 하 세 요.poi 로 읽 으 면 tm - extractors - 0.4. jar 를 다운로드 해 야 합 니 다.
다운로드 주소:http://mirrors.ibiblio.org/pub/mirrors/maven2/org/textmining/tm-extractors/0.4/ 다운로드 가 끝나 면 classpath 에 넣 습 니 다.
읽 기 코드:
import java.io.*;
import org.textmining.text.extraction.WordExtractor;


public class ReadWord {

public static void main(String args[]) throws Exception
{
 FileInputStream in = new FileInputStream ("f:\\test.doc");
 WordExtractor extractor = new WordExtractor();
 String str = extractor.extractText(in);
 System.out.println("the result length is"+str.length());
 System.out.println("the result is"+str);
 }
}


 

cmd 에서 컴 파일 을 실행 하면 성공 할 수 있 습 니 다. 이 방식 은 데이터 만 읽 을 수 있 고 형식 을 읽 을 수 없 으 며 내용 을 수정 할 수 없습니다.
2. 다시 jacob 로      jacob 바로... 이다 JAVA-COM Bridge 의 줄 임 말 은 자바 와 마이크로소프트 come 구성 요소 간 의 교량 으로 jacob 자체 dll 동적 연결 라 이브 러 리 를 사용 하여 JNI 방식 으로 sun 에서 구현 되 었 습 니 다. 자바 플랫폼 의 프로그램 이 come 에 호출 되 었 습 니 다.jacob 의 저 자 는 마이크로소프트 자바 개발 패키지 에서 come 구성 요 소 를 호출 하 는 모델 을 그대로 옮 겨 sun 에 있 습 니 다. 자바 플랫폼 에서 이 루어 지 는 것 은 심혈 을 기울 이 는 것 이 라 고 할 수 있 습 니 다.
    Yahoo 지원 장소:http://groups.yahoo.com/group/jacob-project     다운로드 주소:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368
    다운로드 후 압축 을 풀 고 jacob. jar 를 jdk 의 bin 디 렉 터 리 와 jre 의 bin 디 렉 터 리 에 넣 습 니 다.jacob 을 .dll 은 c: / windows / system 32 / 아래 에 놓 습 니 다.이렇게 하면 설정 이 완 료 된 셈 이다.
레이 블:    1. jdk1.4.2_04  테스트 를 통과 한 JDK 버 전 (다른 버 전 은 시도 하지 않 았 음)    2. jacobBin_17.zip  테스트 결과 JACOB. jar 버 전 은 1.7 이 어야 합 니 다. (다른 버 전 테스트 는 성공 하지 못 했 습 니 다)    3. jacob_18.zip   테스트 결과 JACOB. dll 버 전 은 1. 8 이 어야 합 니 다.    4. winxp 전문 판 + office 2003  테스트 환경
일반적인 오류 설명: 1. jacob. dll 또는 jacob. jar 버 전 오류
com.jacob.com.ComFailException: A COM exception has been encountered: At Invoke of: Documents Description: An unknown COM error has occured. at com.jacob.com.Dispatch.invokev(Native Method) at com.jacob.activeX.ActiveXComponent.getProperty(ActiveXComponent.java) at com.perlong.poa.common.dao.sqlserver.WordToHtml.change(WordToHtml.java:73) at com.perlong.poa.common.dao.sqlserver.WordToHtml.main(WordToHtml.java:121) com.jacob.com.ComFailException: A COM exception has been encountered:At Invoke of: Quit Description: An unknown COM error has occured. at com.jacob.com.Dispatch.invokev(Native Method) at com.jacob.activeX.ActiveXComponent.invoke(ActiveXComponent.java) at com.perlong.poa.common.dao.sqlserver.WordToHtml.change(WordToHtml.java:92) at com.perlong.poa.common.dao.sqlserver.WordToHtml.main(WordToHtml.java:121) Exception in thread "main"
2. jacob. dljava. lang. UnsatisfiedLinkError: java. library. path 의 java. lang. ClassLoader. loadLibrary (ClassLoader. java: 1344) 의 java. lang. Runtime. loadLibrary 0 (Runtime. java: 744) 의 java. lang. System. loadLibrary (System. java: 815) 의 com. jacob. com. Dispatch. (Dispatch. java) at com. perlong. paa. comon. dao. sqlserver. WordToHtml. change(WordToHtml.java:56) at com.perlong.poa.common.dao.sqlserver.WordToHtml.main(WordToHtml.java:121) Exception in thread "main"
3. 자원 파일, 자원 파일 경로 문 제 를 찾 을 수 없습니다. (프로그램 에서 자원 파일 경로 설정 을 보고 자원 파일 의 저장 경 로 를 확인 합 니 다.) com. jacob. com. ComFailException: Invoke of: Open Source: Microsoft Word Description: at com. jacob. com. Dispatch. invokev (Native Method) at com. jacob. com. Dispatch. invoke (Dispatch. invoke) at FileExtracter. main(FileExtracter.java:17)
예: doc 변환 html
import java.io.File;
import com.jacob.com.*;
import com.jacob.activeX.*;


public class DocToHtml {
 
 public static void main(String[] args) {

    ActiveXComponent app = new ActiveXComponent("Word.Application"); //  word 
    String inFile = "f:\\test.doc"; //    word   
   String tpFile = "f:\\temp.htm"; //    html   
    boolean flag = false;
    try {
     app.setProperty("Visible", new Variant(false));//  word   
     Object docs = app.getProperty("Documents").toDispatch();
     Object doc = Dispatch.invoke(docs,"Open", Dispatch.Method, new Object[]{inFile,new Variant(false), new Variant(true)}, new int[1]).toDispatch();
     //  word  
     Dispatch.invoke(doc,"SaveAs", Dispatch.Method, new Object[]{tpFile,new Variant(8)}, new int[1]);
     //  htm      
     Variant f = new Variant(false);
     Dispatch.call(doc, "Close", f);  //    
     
     flag = true;
    } catch (Exception e) {
     e.printStackTrace();
    } finally {
     app.invoke("Quit", new Variant[] {});
    }

   }
}


그리고 이 데모 에:
 
package com.test;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class MSWordManager {

	// word  
	private Dispatch doc;

	// word      
	private ActiveXComponent word;

	//   word    
	private Dispatch documents;

	//          
	private Dispatch selection;

	private boolean saveOnExit = true;

	/**
	 * 
	 * @param visible
	 *             true  word      
	 */
	public MSWordManager(boolean visible) {
		if (word == null) {
			word = new ActiveXComponent("Word.Application");
			word.setProperty("Visible", new Variant(visible));
		}
		if (documents == null)
			documents = word.getProperty("Documents").toDispatch();
	}

	/** */
	/**
	 *        
	 * 
	 * @param saveOnExit
	 *            boolean true-       ,false-        
	 */
	public void setSaveOnExit(boolean saveOnExit) {
		this.saveOnExit = saveOnExit;
	}

	/** */
	/**
	 *       word  
	 * 
	 */
	public void createNewDocument() {
		doc = Dispatch.call(documents, "Add").toDispatch();
		selection = Dispatch.get(word, "Selection").toDispatch();
	}

	/** */
	/**
	 *           
	 * 
	 * @param docPath
	 */
	public void openDocument(String docPath) {
		closeDocument();
		doc = Dispatch.call(documents, "Open", docPath).toDispatch();
		selection = Dispatch.get(word, "Selection").toDispatch();
	}

	/** */
	/**
	 *               
	 * 
	 * @param pos
	 *                 
	 */
	public void moveUp(int pos) {
		if (selection == null)
			selection = Dispatch.get(word, "Selection").toDispatch();
		for (int i = 0; i < pos; i++)
			Dispatch.call(selection, "MoveUp");

	}

	/** */
	/**
	 *                
	 * 
	 * @param pos
	 *                 
	 */
	public void moveDown(int pos) {
		if (selection == null)
			selection = Dispatch.get(word, "Selection").toDispatch();
		for (int i = 0; i < pos; i++)
			Dispatch.call(selection, "MoveDown");
	}

	/** */
	/**
	 *                
	 * 
	 * @param pos
	 *                 
	 */
	public void moveLeft(int pos) {
		if (selection == null)
			selection = Dispatch.get(word, "Selection").toDispatch();
		for (int i = 0; i < pos; i++) {
			Dispatch.call(selection, "MoveLeft");
		}
	}

	/** */
	/**
	 *                
	 * 
	 * @param pos
	 *                 
	 */
	public void moveRight(int pos) {
		if (selection == null)
			selection = Dispatch.get(word, "Selection").toDispatch();
		for (int i = 0; i < pos; i++)
			Dispatch.call(selection, "MoveRight");
	}

	/** */
	/**
	 *             
	 * 
	 */
	public void moveStart() {
		if (selection == null)
			selection = Dispatch.get(word, "Selection").toDispatch();
		Dispatch.call(selection, "HomeKey", new Variant(6));
	}

	public void moveEnd() {
		if (selection == null)
			selection = Dispatch.get(word, "Selection").toDispatch();
		Dispatch.call(selection, "EndKey", new Variant(6));
	}

	/** */
	/**
	 *                
	 * 
	 * @param toFindText
	 *                  
	 * @return boolean true-         ,false-      
	 */
	public boolean find(String toFindText) {
		if (toFindText == null || toFindText.equals(""))
			return false;
		//  selection        
		Dispatch find = word.call(selection, "Find").toDispatch();
		//         
		Dispatch.put(find, "Text", toFindText);
		//     
		Dispatch.put(find, "Forward", "True");
		//     
		Dispatch.put(find, "Format", "True");
		//      
		Dispatch.put(find, "MatchCase", "True");
		//     
		Dispatch.put(find, "MatchWholeWord", "True");
		//      
		return Dispatch.call(find, "Execute").getBoolean();
	}

	/** */
	/**
	 *               
	 * 
	 * @param toFindText
	 *                 
	 * @param newText
	 *                  
	 * @return
	 */
	public boolean replaceText(String toFindText, String newText) {
		if (!find(toFindText))
			return false;
		Dispatch.put(selection, "Text", newText);
		return true;
	}

	/** */
	/**
	 *       
	 * 
	 * @param toFindText
	 *                 
	 * @param newText
	 *                  
	 */
	public void replaceAllText(String toFindText, String newText) {
		while (find(toFindText)) {
			Dispatch.put(selection, "Text", newText);
			Dispatch.call(selection, "MoveRight");
		}
	}

	/** */
	/**
	 *            
	 * 
	 * @param newText
	 *                    
	 */
	public void insertText(String newText) {
		Dispatch.put(selection, "Text", newText);
	}

	/** */
	/**
	 * 
	 * @param toFindText
	 *                   
	 * @param imagePath
	 *                
	 * @return
	 */
	public boolean replaceImage(String toFindText, String imagePath) {
		if (!find(toFindText))
			return false;
		Dispatch.call(Dispatch.get(selection, "InLineShapes").toDispatch(),
				"AddPicture", imagePath);
		return true;
	}

	/** */
	/**
	 *       
	 * 
	 * @param toFindText
	 *                 
	 * @param imagePath
	 *                
	 */
	public void replaceAllImage(String toFindText, String imagePath) {
		while (find(toFindText)) {
			Dispatch.call(Dispatch.get(selection, "InLineShapes").toDispatch(),
					"AddPicture", imagePath);
			Dispatch.call(selection, "MoveRight");
		}
	}

	/** */
	/**
	 *           
	 * 
	 * @param imagePath
	 *                
	 */
	public void insertImage(String imagePath) {
		Dispatch.call(Dispatch.get(selection, "InLineShapes").toDispatch(),
				"AddPicture", imagePath);
	}

	/** */
	/**
	 *      
	 * 
	 * @param tableIndex
	 * @param fstCellRowIdx
	 * @param fstCellColIdx
	 * @param secCellRowIdx
	 * @param secCellColIdx
	 */
	public void mergeCell(int tableIndex, int fstCellRowIdx, int fstCellColIdx,
			int secCellRowIdx, int secCellColIdx) {
		//     
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		Dispatch fstCell = Dispatch.call(table, "Cell",
				new Variant(fstCellRowIdx), new Variant(fstCellColIdx))
				.toDispatch();
		Dispatch secCell = Dispatch.call(table, "Cell",
				new Variant(secCellRowIdx), new Variant(secCellColIdx))
				.toDispatch();
		Dispatch.call(fstCell, "Merge", secCell);
	}

	/** */
	/**
	 *             
	 * 
	 * @param tableIndex
	 * @param cellRowIdx
	 * @param cellColIdx
	 * @param txt
	 */
	public void putTxtToCell(int tableIndex, int cellRowIdx, int cellColIdx,
			String txt) {
		//     
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		Dispatch cell = Dispatch.call(table, "Cell", new Variant(cellRowIdx),
				new Variant(cellColIdx)).toDispatch();
		Dispatch.call(cell, "Select");
		Dispatch.put(selection, "Text", txt);
	}

	/** */
	/**
	 *          
	 * 
	 * @param pos
	 */
	public void copy(String toCopyText) {
		moveStart();
		if (this.find(toCopyText)) {
			Dispatch textRange = Dispatch.get(selection, "Range").toDispatch();
			Dispatch.call(textRange, "Copy");
		}
	}

	/** */
	/**
	 *             
	 * 
	 * @param pos
	 */
	public void paste(String pos) {
		moveStart();
		if (this.find(pos)) {
			Dispatch textRange = Dispatch.get(selection, "Range").toDispatch();
			Dispatch.call(textRange, "Paste");
		}
	}

	/** */
	/**
	 *               
	 * 
	 * @param pos
	 *                     
	 * @param tableIndex
	 *                   word        
	 */
	public void copyTable(String pos, int tableIndex) {
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		Dispatch range = Dispatch.get(table, "Range").toDispatch();
		Dispatch.call(range, "Copy");
		if (this.find(pos)) {
			Dispatch textRange = Dispatch.get(selection, "Range").toDispatch();
			Dispatch.call(textRange, "Paste");
		}
	}

	/** */
	/**
	 *                     
	 * 
	 * @param anotherDocPath
	 *                      
	 * @param tableIndex
	 *                            ( 1  )
	 */
	public void copyParagraphFromAnotherDoc(String anotherDocPath,
			int paragraphIndex) {
		Dispatch wordContent = Dispatch.get(doc, "Content").toDispatch(); //          
		Dispatch.call(wordContent, "InsertAfter", "$selection$");//           
		copyParagraphFromAnotherDoc(anotherDocPath, paragraphIndex,
				"$selection$");
	}

	/** */
	/**
	 *                        
	 * 
	 * @param anotherDocPath
	 *                      
	 * @param tableIndex
	 *                            ( 1  )
	 * @param pos
	 *                     
	 */
	public void copyParagraphFromAnotherDoc(String anotherDocPath,
			int paragraphIndex, String pos) {
		Dispatch doc2 = null;
		try {
			doc2 = Dispatch.call(documents, "Open", anotherDocPath)
					.toDispatch();
			Dispatch paragraphs = Dispatch.get(doc2, "Paragraphs").toDispatch();

			Dispatch paragraph = Dispatch.call(paragraphs, "Item",
					new Variant(paragraphIndex)).toDispatch();
			Dispatch range = Dispatch.get(paragraph, "Range").toDispatch();
			Dispatch.call(range, "Copy");
			if (this.find(pos)) {
				Dispatch textRange = Dispatch.get(selection, "Range")
						.toDispatch();
				Dispatch.call(textRange, "Paste");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (doc2 != null) {
				Dispatch.call(doc2, "Close", new Variant(saveOnExit));
				doc2 = null;
			}
		}
	}

	/** */
	/**
	 *                        
	 * 
	 * @param anotherDocPath
	 *                      
	 * @param tableIndex
	 *                            ( 1  )
	 * @param pos
	 *                     
	 */
	public void copyTableFromAnotherDoc(String anotherDocPath, int tableIndex,
			String pos) {
		Dispatch doc2 = null;
		try {
			doc2 = Dispatch.call(documents, "Open", anotherDocPath)
					.toDispatch();
			Dispatch tables = Dispatch.get(doc2, "Tables").toDispatch();
			Dispatch table = Dispatch.call(tables, "Item",
					new Variant(tableIndex)).toDispatch();
			Dispatch range = Dispatch.get(table, "Range").toDispatch();
			Dispatch.call(range, "Copy");
			if (this.find(pos)) {
				Dispatch textRange = Dispatch.get(selection, "Range")
						.toDispatch();
				Dispatch.call(textRange, "Paste");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (doc2 != null) {
				Dispatch.call(doc2, "Close", new Variant(saveOnExit));
				doc2 = null;
			}
		}
	}

	/** */
	/**
	 *                        
	 * 
	 * @param anotherDocPath
	 *                      
	 * @param shapeIndex
	 *                            
	 * @param pos
	 *                     
	 */
	public void copyImageFromAnotherDoc(String anotherDocPath, int shapeIndex,
			String pos) {
		Dispatch doc2 = null;
		try {
			doc2 = Dispatch.call(documents, "Open", anotherDocPath)
					.toDispatch();
			Dispatch shapes = Dispatch.get(doc2, "InLineShapes").toDispatch();
			Dispatch shape = Dispatch.call(shapes, "Item",
					new Variant(shapeIndex)).toDispatch();
			Dispatch imageRange = Dispatch.get(shape, "Range").toDispatch();
			Dispatch.call(imageRange, "Copy");
			if (this.find(pos)) {
				Dispatch textRange = Dispatch.get(selection, "Range")
						.toDispatch();
				Dispatch.call(textRange, "Paste");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (doc2 != null) {
				Dispatch.call(doc2, "Close", new Variant(saveOnExit));
				doc2 = null;
			}
		}
	}

	/** */
	/**
	 *     
	 * 
	 * @param pos
	 *              
	 * @param cols
	 *              
	 * @param rows
	 *              
	 */
	public void createTable(int numCols, int numRows) {// (String pos, int
														// numCols, int numRows)
														// {
	// if (!find(pos)) {
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		Dispatch range = Dispatch.get(selection, "Range").toDispatch();
		Dispatch newTable = Dispatch.call(tables, "Add", range,
				new Variant(numRows), new Variant(numCols)).toDispatch();
		Dispatch.call(selection, "MoveRight");
		moveEnd();
		// }
	}

	/** */
	/**
	 *          
	 * 
	 * @param tableIndex
	 *            word     N  ( 1  )
	 * @param rowIndex
	 *                  ( 1  )
	 */
	public void addTableRow(int tableIndex, int rowIndex) {
		//     
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		//       
		Dispatch rows = Dispatch.get(table, "Rows").toDispatch();
		Dispatch row = Dispatch.call(rows, "Item", new Variant(rowIndex))
				.toDispatch();
		Dispatch.call(rows, "Add", new Variant(row));
	}

	/** */
	/**
	 *   1      
	 * 
	 * @param tableIndex
	 *            word     N  ( 1  )
	 */
	public void addFirstTableRow(int tableIndex) {
		//     
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		//       
		Dispatch rows = Dispatch.get(table, "Rows").toDispatch();
		Dispatch row = Dispatch.get(rows, "First").toDispatch();
		Dispatch.call(rows, "Add", new Variant(row));
	}

	/** */
	/**
	 *    1      
	 * 
	 * @param tableIndex
	 *            word     N  ( 1  )
	 */
	public void addLastTableRow(int tableIndex) {
		//     
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		//       
		Dispatch rows = Dispatch.get(table, "Rows").toDispatch();
		Dispatch row = Dispatch.get(rows, "Last").toDispatch();
		Dispatch.call(rows, "Add", new Variant(row));
	}

	/** */
	/**
	 *     
	 * 
	 * @param tableIndex
	 *            word     N  ( 1  )
	 */
	public void addRow(int tableIndex) {
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		//       
		Dispatch rows = Dispatch.get(table, "Rows").toDispatch();
		Dispatch.call(rows, "Add");
	}

	/** */
	/**
	 *     
	 * 
	 * @param tableIndex
	 *            word     N  ( 1  )
	 */
	public void addCol(int tableIndex) {
		//     
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		//       
		Dispatch cols = Dispatch.get(table, "Columns").toDispatch();
		Dispatch.call(cols, "Add").toDispatch();
		Dispatch.call(cols, "AutoFit");
	}

	/** */
	/**
	 *             
	 * 
	 * @param tableIndex
	 *            word     N  ( 1  )
	 * @param colIndex
	 *                   ( 1  )
	 */
	public void addTableCol(int tableIndex, int colIndex) {
		//     
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		//       
		Dispatch cols = Dispatch.get(table, "Columns").toDispatch();
		System.out.println(Dispatch.get(cols, "Count"));
		Dispatch col = Dispatch.call(cols, "Item", new Variant(colIndex))
				.toDispatch();
		// Dispatch col = Dispatch.get(cols, "First").toDispatch();
		Dispatch.call(cols, "Add", col).toDispatch();
		Dispatch.call(cols, "AutoFit");
	}

	/** */
	/**
	 *   1      
	 * 
	 * @param tableIndex
	 *            word     N  ( 1  )
	 */
	public void addFirstTableCol(int tableIndex) {
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		//       
		Dispatch cols = Dispatch.get(table, "Columns").toDispatch();
		Dispatch col = Dispatch.get(cols, "First").toDispatch();
		Dispatch.call(cols, "Add", col).toDispatch();
		Dispatch.call(cols, "AutoFit");
	}

	/** */
	/**
	 *           
	 * 
	 * @param tableIndex
	 *            word     N  ( 1  )
	 */
	public void addLastTableCol(int tableIndex) {
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		//       
		Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))
				.toDispatch();
		//       
		Dispatch cols = Dispatch.get(table, "Columns").toDispatch();
		Dispatch col = Dispatch.get(cols, "Last").toDispatch();
		Dispatch.call(cols, "Add", col).toDispatch();
		Dispatch.call(cols, "AutoFit");
	}

	/** */
	/**
	 *       
	 * 
	 */
	public void autoFitTable() {
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		int count = Dispatch.get(tables, "Count").toInt();
		for (int i = 0; i < count; i++) {
			Dispatch table = Dispatch.call(tables, "Item", new Variant(i + 1))
					.toDispatch();
			Dispatch cols = Dispatch.get(table, "Columns").toDispatch();
			Dispatch.call(cols, "AutoFit");
		}
	}

	/** */
	/**
	 *   word           ,      document 
	 * 
	 */
	public void callWordMacro() {
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		int count = Dispatch.get(tables, "Count").toInt();
		Variant vMacroName = new Variant("Normal.NewMacros.tableFit");
		Variant vParam = new Variant("param1");
		Variant para[] = new Variant[] { vMacroName };
		for (int i = 0; i < para.length; i++) {
			Dispatch table = Dispatch.call(tables, "Item", new Variant(i + 1))
					.toDispatch();
			Dispatch.call(table, "Select");
			Dispatch.call(word, "Run", "tableFitContent");
		}
	}

	/** */
	/**
	 *            
	 * 
	 * @param boldSize
	 * @param italicSize
	 * @param underLineSize
	 *               
	 * @param colorSize
	 *                
	 * @param size
	 *                
	 * @param name
	 *                
	 */
	public void setFont(boolean bold, boolean italic, boolean underLine,
			String colorSize, String size, String name) {
		Dispatch font = Dispatch.get(selection, "Font").toDispatch();
		Dispatch.put(font, "Name", new Variant(name));
		Dispatch.put(font, "Bold", new Variant(bold));
		Dispatch.put(font, "Italic", new Variant(italic));
		Dispatch.put(font, "Underline", new Variant(underLine));
		Dispatch.put(font, "Color", colorSize);
		Dispatch.put(font, "Size", size);
	}

	/** */
	/**
	 *         
	 * 
	 * @param savePath
	 *                    
	 */
	public void save(String savePath) {
		Dispatch.call(
				(Dispatch) Dispatch.call(word, "WordBasic").getDispatch(),
				"FileSaveAs", savePath);
	}

	/** */
	/**
	 *     word  
	 * 
	 */
	public void closeDocument() {
		if (doc != null) {
			Dispatch.call(doc, "Save");
			Dispatch.call(doc, "Close", new Variant(saveOnExit));
			doc = null;
		}
	}

	/** */
	/**
	 *       
	 * 
	 */
	public void close() {
		closeDocument();
		if (word != null) {
			Dispatch.call(word, "Quit");
			word = null;
		}
		selection = null;
		documents = null;
	}

	/** */
	/**
	 *     word  
	 * 
	 */
	public void printFile() {
		if (doc != null) {
			Dispatch.call(doc, "PrintOut");
		}
	}

	public static void main(String args[]) throws Exception {

		MSWordManager msWordManager = new MSWordManager(true);
		msWordManager.createNewDocument();
		msWordManager.insertText("aaaaaaaaaaaaaaaaaaaaa");
		msWordManager.moveEnd();
		msWordManager.close();
	}

}

표 에 테 두 리 를 추가 하려 면:
/**
	 *     
	 * 
	 * @param pos
	 *              
	 * @param cols
	 *              
	 * @param rows
	 *              
	 */
	public void createTable(int numCols, int numRows) { // (String pos, int
														// numCols, int numRows)
														// {
	// if (!find(pos)) {
		Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
		Dispatch range = Dispatch.get(selection, "Range").toDispatch();
		Dispatch newTable = Dispatch.call(tables, "Add", range,
				new Variant(numRows), new Variant(numCols)).toDispatch();
		Dispatch.call(selection, "MoveRight");
		
		Dispatch borders = Dispatch.get(newTable, "Borders").toDispatch();
		for(int i=1;i<7;i++) {
			
			Dispatch border = Dispatch.call(borders, "Item",new Variant(i)).toDispatch();
			Dispatch.put(border, "Visible", new Variant(true));
		}
		moveEnd();
		// }
	}
	/*          
	   * -1:   
	   * -2:    
	   * -3:    
	   * -4:    
	   * -5:    
	   * -6:    
	   * -7:              
	   * -8:              
	    public void deleteTableBorder(int tableIndex){
	    	wdTable = getTable(tableIndex);
	    	Dispatch borders = Dispatch.get(wdTable, "Borders").toDispatch();
	    	Dispatch border = Dispatch.call(borders, "Item",new Variant(-3)).toDispatch();
	    	//Dispatch.put(border, "LineWidth", new Variant(1));
	        Dispatch.put(border, "Visible", new Variant(false));
	    }
	   */

질문
/*
	 *       
	 */
	private static String changeCode(String str){
		String s = "";
		     try {
				s = new String(str.getBytes("gbk"));
			} catch (UnsupportedEncodingException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}   
		    System.out.println(s);
		return s;
	}

다음으로 이동:http://dohadbest.blog.sohu.com/39807935.html

좋은 웹페이지 즐겨찾기