<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-48  評論-26  文章-0  trackbacks-0
      直接上代碼,如果對jacob有疑問或出現錯誤,請查看我這篇文章
      http://www.tkk7.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 閱讀(4504) 評論(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文檔通過流的方式下載?  回復  更多評論
      

    主站蜘蛛池模板: 久久国内免费视频| 久久成人永久免费播放| 亚洲国产a∨无码中文777| 妞干网手机免费视频| 最近中文字幕mv免费高清视频8| 亚洲一级片免费看| 羞羞漫画登录页面免费| 在线观看国产区亚洲一区成人| 无人影院手机版在线观看免费| 久久国产精品萌白酱免费| 七次郎成人免费线路视频| 亚洲heyzo专区无码综合| 国产成人精品日本亚洲11| 亚洲理论精品午夜电影| 亚洲AV永久青草无码精品| 国产亚洲精品岁国产微拍精品| 婷婷亚洲天堂影院| 国产成人免费全部网站| 国产小视频在线观看免费| 最新69国产成人精品免费视频动漫| 免费人成视频在线播放| 亚洲av无码一区二区三区天堂| 亚洲一区二区三区免费观看| 亚洲AV无码乱码国产麻豆| 亚洲精品成人无限看| a级亚洲片精品久久久久久久| 亚洲综合另类小说色区色噜噜| 免费成人午夜视频| 五月亭亭免费高清在线| 18观看免费永久视频| 91免费在线播放| 午夜性色一区二区三区免费不卡视频 | 亚洲成在人天堂在线| 亚洲人成亚洲人成在线观看| 亚洲自偷自偷偷色无码中文| 国产AⅤ无码专区亚洲AV| 国产精品国产亚洲精品看不卡| 亚洲精品成人片在线观看精品字幕| 亚洲人成网站在线观看播放| 亚洲精品高清久久| 亚洲精品中文字幕乱码影院|