java使用创建Word文件示例

    技术2022-05-20  40

    package zzz.eee.q;

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

    /**  * jacob.jar放到classPath下 jacob-1.15-M2-x86.dll位于Path路径下  * http://java.chinaitlab.com/tools/779091_2.html  *  * @author down from internet  *  */

    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) {   if (fstCellRowIdx == secCellRowIdx && fstCellColIdx == secCellColIdx) {    return;   }   // 所有表格   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);  }

     /**   * 在表格填充字段时,设置为粗体   */  public void putTxtToCell(int tableIndex, int cellRowIdx, int cellColIdx,    String txt, boolean bold) {   // 所有表格   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");   setFont(true);   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 Dispatch 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();   return newTable;   // }  }

     public void netline() {   Dispatch.call(selection, "TypeParagraph");  }

     /** */  /**   * 在指定行前面增加行   *   * @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);  }

     public void setFont(boolean bold) {   Dispatch font = Dispatch.get(selection, "Font").toDispatch();   Dispatch.put(font, "Bold", new Variant(bold));  }

     public void setFont(boolean bold, String size) {   Dispatch font = Dispatch.get(selection, "Font").toDispatch();   Dispatch.put(font, "Bold", new Variant(bold));   Dispatch.put(font, "Size", size);  }

     // public void setTableBorderWidth(int w,int tableIndex) { w范围2~13  public void setTableBorderWidth(int tableIndex) {   Dispatch tables = Dispatch.call(doc, "Tables").toDispatch();   Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))     .toDispatch();   Dispatch borders = Dispatch.get(table, "Borders").toDispatch();   Dispatch borderLeft = Dispatch.get(table, "Borders").toDispatch();   // Dispatch.put(borders, "LineWidth",new Variant(w));   Dispatch border = null;   /**    * * 设置表格线的粗细 * 1:代表最上边一条线 2:代表最左边一条线 3:最下边一条线 4:最右边一条线 *    * 5:除最上边最下边之外的所有横线 6:除最左边最右边之外的所有竖线 * 7:从左上角到右下角的斜线 8:从左下角到右上角的斜线    */   for (int i = 1; i < 7; i++) {    border = Dispatch.call(borders, "Item", new Variant(i))      .toDispatch();    Dispatch.put(border, "LineWidth", new Variant(0.4));    // Dispatch.put(border, "LineWidth", new Variant(w));    Dispatch.put(border, "Visible", new Variant(true));   }  }

     // public void setTableBorderWidth(float w, int tableIndex) {  // try {  // float width ;  // Dispatch tables=Dispatch.call(doc,"Tables").toDispatch();  // Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex))  // .toDispatch();  // Dispatch borders = Dispatch.get(table, "Borders").toDispatch();  // Dispatch border = null;  //  // //  // // 设置表格线的粗细 1:代表最上边一条线 2:代表最左边一条线 3:最下边一条线 4:最右边一条线 5:除最上边最下边之外的所有横线  // // 6:除最左边最右边之外的所有竖线 7:从左上角到右下角的斜线 8:从左下角到右上角的斜线  // //  // for (int i = 1; i < 7; i++) {  // if(i != 5 && i != 6 ) {  // width = w * 3;  // } else {  // width = w;  // }  // border = Dispatch.call(borders, "Item", new Variant(i)).toDispatch();  // if (w != 0) {  // Dispatch.put(border, "LineWidth", new Variant(width));  // Dispatch.put(border, "Visible", new Variant(true));  // } else if (w == 0) {  // Dispatch.put(border, "Visible", new Variant(false));  // }  // }  // } catch (Exception e) {  // e.printStackTrace();  // }  // }

     /** */  /**   * 文件保存或另存为   *   * @param savePath   *            保存或另存为路径   */  public void save(String savePath) {   Object oWordBasic = Dispatch.call(word, "WordBasic").getDispatch();   Dispatch.call((Dispatch) oWordBasic, "FileSaveAs", 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 {   // TODO Auto-generated method stub   // 生成一个MSwordManager对象,并且设置显示Word程序   MSWordManager ms = new MSWordManager(true);   // 创建一个新的.doc文件   ms.createNewDocument();   // 插入文本   ms.createTable(4, 2);   ms.createTable(2, 2);   ms.netline();   ms.setTableBorderWidth(1);   // ms.setFont(true, false, false, "0", "10", "Times New Roman");   ms.putTxtToCell(1, 1, 1, "aaaa");   ms.putTxtToCell(1, 1, 2, "bbbb");   ms.putTxtToCell(1, 1, 3, "cccc");   ms.putTxtToCell(1, 1, 4, "dddd");   ms.putTxtToCell(1, 1, 5, "eeee");   ms.putTxtToCell(1, 1, 6, "ffff");

      ms.putTxtToCell(1, 3, 1, "wwww");   ms.putTxtToCell(1, 3, 2, "qqqq");   // ms.mergeCell(1, 3, 1, 3, 2) ;   ms.moveEnd();

      Dispatch test = ms.createTable(6, 5);   ms.setTableBorderWidth(2);   // ms.setFont(true, false, false, "0", "10", "Times New Roman");   ms.putTxtToCell(2, 1, 1, "ID");   ms.putTxtToCell(2, 1, 2, "ffff");   ms.putTxtToCell(2, 1, 3, "eeee");   ms.putTxtToCell(2, 1, 4, "vvvv");   ms.putTxtToCell(2, 1, 5, "zzzz");   ms.putTxtToCell(2, 1, 6, "bbbb");   // 保存.doc文件   ms.save("1.doc");   ms.close();   ms.closeDocument();   //   // MSWordManager msWordManager = new MSWordManager(true);   // msWordManager.createNewDocument();   //     //                     //                     // msWordManager.insertText("aaaaaaaaaaaaaaaaaaaaa");   // msWordManager.moveEnd();   //   //                 //                     //                 // msWordManager.close();

     }

    }


    最新回复(0)