隨筆-48  評論-26  文章-0  trackbacks-0
            直接上代碼,如果對jacob有疑問或出現錯誤,請查看我這篇文章
            http://www.aygfsteel.com/invoked/archive/2009/09/26/296526.html

           

          import com.jacob.activeX.ActiveXComponent;
          import com.jacob.com.ComThread;
          import com.jacob.com.Dispatch;
          import com.jacob.com.Variant;
          /***
           * 
           * 
          @author BruceLeey
           *
           
          */
          public class MSWordManager {
              
          // word文檔
              private Dispatch doc;

              
          // word運行程序對象
              private ActiveXComponent word;

              
          // 所有word文檔集合
              private Dispatch documents;

              
          // 選定的范圍或插入點
              private Dispatch selection;

              
          private boolean saveOnExit = true;

              
          public MSWordManager() {
                  ComThread.InitSTA();
                  
          if (word == null) {
                      word 
          = new ActiveXComponent("Word.Application");
                      word.setProperty(
          "Visible"new Variant(false));
                  }
                  
          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));
              }

              
          /**
               * 從選定內容或插入點開始查找文本
               * 
               * 
          @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 tableIndex
               * 
          @param cellRowIdx
               * 
          @param cellColIdx
               * 
          @param txt
               
          */
              
          public void putTxtToCellCenter(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 alignment 
          = Dispatch.get(selection, "ParagraphFormat")
                          .toDispatch();
                  Dispatch.put(alignment, 
          "Alignment""3");
                  Dispatch.put(selection, 
          "Text", txt);
              }

              
          /**
               * 在當前文檔拷貝剪貼板數據
               * 
               * 
          @param pos
               
          */
              
          public void pasteExcelSheet(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
               *            被拷貝的表格在另一格文檔中的位置
               * 
          @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(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");
                  }
              }

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

              
          /**
               * 設置當前選定內容的字體
               * 
               * 
          @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 setFontCenter(String name) {
                  Dispatch font 
          = Dispatch.get(selection, "Font").toDispatch();
                  Dispatch alignment 
          = Dispatch.get(selection, "ParagraphFormat")
                          .toDispatch();
                  Dispatch.put(alignment, 
          "Alignment""3");
                  Dispatch.call(selection, 
          "TypeText", name);
              }

              
          /**
               * 文件保存或另存為
               * 
               * 
          @param savePath
               *            保存或另存為路徑
               
          */
              
          public void save(String savePath) {
                  Dispatch.call(doc, 
          "SaveAs", savePath); // 保存
                  /*
                   * Dispatch.call(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;
                  ComThread.Release();
              }

              
          /**
               * 打印當前word文檔
               * 
               
          */
              
          public void printFile() {
                  
          if (doc != null) {
                      Dispatch.call(doc, 
          "PrintOut");
                  }
              }

              
          /**
               * 刪除一行
               * 
               * 
          @param tableIndex
               *            word文檔中的第N張表(從1開始)
               
          */
              
          public void delRow(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();
                  Object temp1 
          = Dispatch.get(rows, "Count");
                  String temp2 
          = temp1.toString();
                  
          int count = Integer.parseInt(temp2);
                  
          while (count > 1) {
                      Dispatch row 
          = Dispatch.get(rows, "Last").toDispatch();
                      Dispatch.call(row, 
          "Delete");
                      rows 
          = Dispatch.get(table, "Rows").toDispatch();
                      temp1 
          = Dispatch.get(rows, "Count");
                      temp2 
          = temp1.toString();
                      count 
          = Integer.parseInt(temp2);
                  }
              }

              
          public void setProp(String sName, String sValue) {
                  Dispatch props 
          = Dispatch.get(doc, "CustomDocumentProperties")
                          .toDispatch();
                  Dispatch prop 
          = Dispatch.call(props, "Item", sName).toDispatch();
                  String sOldVal 
          = Dispatch.get(prop, "Value").toString();
                  
          if (!sOldVal.equals(sValue))
                      Dispatch.put(prop, 
          "Value", sValue);
              }

              
          /**
               * 
          @param nType:
               *            1, number; 2,bool; 3,date; 4,str;
               
          */
              
          public void addProp(String sName, int nType, String sValue) {
                  Dispatch props 
          = Dispatch.get(doc, "CustomDocumentProperties")
                          .toDispatch();
                  Dispatch prop 
          = null;
                  
          try {
                      prop 
          = Dispatch.call(props, "Item", sName).toDispatch();
                  } 
          catch (Exception e) {
                      prop 
          = null;
                  }
                  
          if (prop != null)
                      
          return;
                  
          // 1, number; 2,bool; 3,date; 4,str;
                  prop = Dispatch.call(props, "Add", sName, false, nType, sValue)
                          .toDispatch();
                  Dispatch.put(prop, 
          "Value", sValue);
              }

              
          public String getProp(String sName) {
                  String sValue 
          = null;
                  Dispatch props 
          = Dispatch.get(doc, "CustomDocumentProperties")
                          .toDispatch();
                  Dispatch prop 
          = Dispatch.call(props, "Item", sName).toDispatch();

                  sValue 
          = Dispatch.get(prop, "Value").toString();
                  @SuppressWarnings(
          "unused")
                  String sType 
          = Dispatch.get(prop, "Type").toString();

                  
          try {
                      Dispatch prop0 
          = Dispatch.call(doc, "CustomDocumentProperties",
                              sName).toDispatch();
                      sValue 
          = Dispatch.get(prop0, "Value").toString();
                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  }
                  
          return sValue;
              }

              
          public void fack_change() {
                  Dispatch _sel 
          = Dispatch.call(doc, "Range"00).toDispatch();
                  Dispatch.call(_sel, 
          "InsertBefore""A");
                  Dispatch.call(_sel, 
          "Select");
                  Dispatch.call(_sel, 
          "Delete");
              }

              

          }
          posted on 2009-09-28 12:28 Worker 閱讀(4508) 評論(3)  編輯  收藏 所屬分類: J2SE/J2EE

          評論:
          # re: jacob操作API[未登錄] 2009-10-29 15:53 | yuan
          非常不錯,太感謝了!!!  回復  更多評論
            
          # re: jacob操作API 2011-09-22 10:44 |
          你知道怎么創建宏嗎?
          例如這樣:
          Sub Macro1()
          '
          ' Macro1 Macro
          ' 宏在 2011-9-22 由 ????? 錄制
          '
          Selection.Comments.Add Range:=Selection.Range
          Selection.TypeText Text:="批注錯誤類型"
          End Sub
          該怎么用java或者js來些呢 我頁面有引用weboffice控件
          望指教 謝謝  回復  更多評論
            
          # re: jacob操作API 2014-03-03 14:29 | 1111
          請問,如何把創建的word文檔通過流的方式下載?  回復  更多評論
            

          主站蜘蛛池模板: 金阳县| 福泉市| 新巴尔虎右旗| 墨玉县| 侯马市| 定远县| 武汉市| 凤凰县| 田阳县| 长寿区| 马龙县| 安阳市| 枞阳县| 格尔木市| 晋宁县| 淮北市| 奎屯市| 娄底市| 平利县| 通城县| 灵石县| 武威市| 南雄市| 三江| 昌平区| 孙吴县| 商丘市| 杭锦旗| 九江市| 涡阳县| 五指山市| 天等县| 岐山县| 建水县| 遂平县| 浙江省| 定日县| 邹平县| 阿荣旗| 商城县| 房产|