자바 작업 워드 문서 표 에 테두리 난호 문제 가 있 습 니 다.
27148 단어 exception
우선, 여러분 은 먼저 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception Class에서 에러 코드 해석 ~초기초편~직장에서 C# 프로젝트가 내뿜는 오류 코드를 구문 분석하고 오류의 위치를 확인하기 위해 Exception class를 활용할 수 있었습니다. 지금까지 Exception Class 에 대해서 별로 파악할 수 없었기 때...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.