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

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

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

    隨筆-48  評(píng)論-26  文章-0  trackbacks-0
      直接上代碼,如果對(duì)jacob有疑問或出現(xiàn)錯(cuò)誤,請(qǐng)查看我這篇文章
      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運(yùn)行程序?qū)ο?/span>
        private ActiveXComponent word;

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

        
    // 選定的范圍或插入點(diǎn)
        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();
        }

        
    /**
         * 設(shè)置退出時(shí)參數(shù)
         * 
         * 
    @param saveOnExit
         *            boolean true-退出時(shí)保存文件,false-退出時(shí)不保存文件
         
    */
        
    public void setSaveOnExit(boolean saveOnExit) {
            
    this.saveOnExit = saveOnExit;
        }

        
    /**
         * 創(chuàng)建一個(gè)新的word文檔
         * 
         
    */
        
    public void createNewDocument() {
            doc 
    = Dispatch.call(documents, "Add").toDispatch();
            selection 
    = Dispatch.get(word, "Selection").toDispatch();
        }

        
    /**
         * 打開一個(gè)已存在的文檔
         * 
         * 
    @param docPath
         
    */
        
    public void openDocument(String docPath) {
            closeDocument();
            doc 
    = Dispatch.call(documents, "Open", docPath).toDispatch();
            selection 
    = Dispatch.get(word, "Selection").toDispatch();
        }

        
    /**
         * 把選定的內(nèi)容或插入點(diǎn)向上移動(dòng)
         * 
         * 
    @param pos
         *            移動(dòng)的距離
         
    */
        
    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");

        }

        
    /**
         * 把選定的內(nèi)容或者插入點(diǎn)向下移動(dòng)
         * 
         * 
    @param pos
         *            移動(dòng)的距離
         
    */
        
    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");
        }

        
    /**
         * 把選定的內(nèi)容或者插入點(diǎn)向左移動(dòng)
         * 
         * 
    @param pos
         *            移動(dòng)的距離
         
    */
        
    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");
            }
        }

        
    /**
         * 把選定的內(nèi)容或者插入點(diǎn)向右移動(dòng)
         * 
         * 
    @param pos
         *            移動(dòng)的距離
         
    */
        
    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");
        }

        
    /**
         * 把插入點(diǎn)移動(dòng)到文件首位置
         * 
         
    */
        
    public void moveStart() {
            
    if (selection == null)
                selection 
    = Dispatch.get(word, "Selection").toDispatch();
            Dispatch.call(selection, 
    "HomeKey"new Variant(6));
        }

        
    /**
         * 從選定內(nèi)容或插入點(diǎn)開始查找文本
         * 
         * 
    @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();
            
    // 設(shè)置要查找的內(nèi)容
            Dispatch.put(find, "Text", toFindText);
            
    // 向前查找
            Dispatch.put(find, "Forward""True");
            
    // 設(shè)置格式
            Dispatch.put(find, "Format""True");
            
    // 大小寫匹配
            Dispatch.put(find, "MatchCase""True");
            
    // 全字匹配
            Dispatch.put(find, "MatchWholeWord""True");
            
    // 查找并選中
            return Dispatch.call(find, "Execute").getBoolean();
        }

        
    /**
         * 把選定選定內(nèi)容設(shè)定為替換文本
         * 
         * 
    @param toFindText
         *            查找字符串
         * 
    @param newText
         *            要替換的內(nèi)容
         * 
    @return
         
    */
        
    public boolean replaceText(String toFindText, String newText) {
            
    if (!find(toFindText))
                
    return false;
            Dispatch.put(selection, 
    "Text", newText);
            
    return true;
        }

        
    /**
         * 全局替換文本
         * 
         * 
    @param toFindText
         *            查找字符串
         * 
    @param newText
         *            要替換的內(nèi)容
         
    */
        
    public void replaceAllText(String toFindText, String newText) {
            
    while (find(toFindText)) {
                Dispatch.put(selection, 
    "Text", newText);
                Dispatch.call(selection, 
    "MoveRight");
            }
        }

        
    /**
         * 在當(dāng)前插入點(diǎn)插入字符串
         * 
         * 
    @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");
            }
        }

        
    /**
         * 在當(dāng)前插入點(diǎn)插入圖片
         * 
         * 
    @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);
        }

        
    /**
         * 在指定的單元格里填寫數(shù)據(jù)
         * 
         * 
    @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);
        }

        
    /**
         * 在指定的單元格里填寫數(shù)據(jù)
         * 
         * 
    @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);
        }

        
    /**
         * 在當(dāng)前文檔拷貝剪貼板數(shù)據(jù)
         * 
         * 
    @param pos
         
    */
        
    public void pasteExcelSheet(String pos) {
            moveStart();
            
    if (this.find(pos)) {
                Dispatch textRange 
    = Dispatch.get(selection, "Range").toDispatch();
                Dispatch.call(textRange, 
    "Paste");
            }
        }

        
    /**
         * 在當(dāng)前文檔指定的位置拷貝表格
         * 
         * 
    @param pos
         *            當(dāng)前文檔指定的位置
         * 
    @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");
            }
        }

        
    /**
         * 在當(dāng)前文檔指定的位置拷貝來自另一個(gè)文檔中的表格
         * 
         * 
    @param anotherDocPath
         *            另一個(gè)文檔的磁盤路徑
         * 
    @param tableIndex
         *            被拷貝的表格在另一格文檔中的位置
         * 
    @param pos
         *            當(dāng)前文檔指定的位置
         
    */
        
    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;
                }
            }
        }

        
    /**
         * 在當(dāng)前文檔指定的位置拷貝來自另一個(gè)文檔中的圖片
         * 
         * 
    @param anotherDocPath
         *            另一個(gè)文檔的磁盤路徑
         * 
    @param shapeIndex
         *            被拷貝的圖片在另一格文檔中的位置
         * 
    @param pos
         *            當(dāng)前文檔指定的位置
         
    */
        
    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;
                }
            }
        }

        
    /**
         * 創(chuàng)建表格
         * 
         * 
    @param pos
         *            位置
         * 
    @param cols
         *            列數(shù)
         * 
    @param rows
         *            行數(shù)
         
    */
        
    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
         *            指定行的序號(hào)(從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
         *            制定列的序號(hào) (從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");
        }

        
    /**
         * 設(shè)置當(dāng)前選定內(nèi)容的字體
         * 
         * 
    @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);
             
    */
        }

        
    /**
         * 關(guān)閉當(dāng)前word文檔
         * 
         
    */
        
    public void closeDocument() {
            
    if (doc != null) {
                Dispatch.call(doc, 
    "Save");
                Dispatch.call(doc, 
    "Close"new Variant(saveOnExit));
                doc 
    = null;
            }
        }

        
    /**
         * 關(guān)閉全部應(yīng)用
         * 
         
    */
        
    public void close() {
            closeDocument();
            
    if (word != null) {
                Dispatch.call(word, 
    "Quit");
                word 
    = null;
            }
            selection 
    = null;
            documents 
    = null;
            ComThread.Release();
        }

        
    /**
         * 打印當(dāng)前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) 評(píng)論(3)  編輯  收藏 所屬分類: J2SE/J2EE

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

    主站蜘蛛池模板: 亚洲不卡1卡2卡三卡2021麻豆| 中文字幕中韩乱码亚洲大片 | 免费观看男人吊女人视频| 二个人看的www免费视频| 黄网站色视频免费在线观看的a站最新| 午夜寂寞在线一级观看免费| 大学生a级毛片免费观看| 亚洲av无码国产精品色在线看不卡| 亚洲日韩在线中文字幕第一页| 亚洲AV日韩AV永久无码免下载| 久久久久亚洲AV无码麻豆| 国产日本亚洲一区二区三区| 粉色视频在线观看www免费| sss在线观看免费高清| 国产无遮挡裸体免费视频在线观看 | 亚洲一区二区三区免费| 亚洲av永久中文无码精品综合| 免费在线观看一区| 可以免费观看的国产视频| 亚洲国产精品综合久久一线| 久久精品国产亚洲网站| 亚洲成a人片在线网站| 亚洲欧美在线x视频| 久久久久久国产精品免费免费男同| 97性无码区免费| 国产精品99久久免费| 亚洲色精品aⅴ一区区三区| 亚洲一级免费毛片| 在线观看免费中文视频| 国产不卡免费视频| 久久亚洲国产精品成人AV秋霞| 国产亚洲福利精品一区二区| 在线观看免费高清视频| www国产亚洲精品久久久日本| 亚洲黄色网站视频| 午夜爽爽爽男女免费观看影院| 精品国产_亚洲人成在线高清 | 国产亚洲蜜芽精品久久| 日本特黄特色aa大片免费| 亚洲精品在线免费观看视频| 色吊丝免费观看网站|