Skip to content

如何调用WPS自己的对话框

基本语法

调用方式

javascript
ocxObj.ActiveDocument.Application.Dialogs(dialogNumber).Show()

参数说明

  • ocxObj:控件对象实例
  • dialogNumber:对话框编号,对应不同的WPS内置对话框

Word对话框编号对照表

帮助和关于对话框

对话框名称编号说明
wdDialogHelpAbout9关于对话框

文件操作对话框

对话框名称编号说明
wdDialogFileNew79新建文件对话框
wdDialogFileOpen80打开文件对话框
wdDialogFileSaveAs84另存为对话框
wdDialogFilePrint88打印对话框
wdDialogFilePrintSetup97打印设置对话框
wdDialogFilePageSetup178页面设置对话框

编辑操作对话框

对话框名称编号说明
wdDialogFileFind99查找对话框
wdDialogEditFind112查找对话框
wdDialogEditReplace117替换对话框
wdDialogEditGoTo896定位对话框
wdDialogEditGoToOld811旧版定位对话框
wdDialogEditPasteSpecial111选择性粘贴对话框

插入操作对话框

对话框名称编号说明
wdDialogInsertBreak159插入分页符对话框
wdDialogInsertSymbol162插入符号对话框
wdDialogInsertPicture163插入图片对话框
wdDialogInsertFile164插入文件对话框
wdDialogInsertDateTime165插入日期时间对话框
wdDialogInsertField166插入域对话框
wdDialogInsertBookmark168插入书签对话框
wdDialogInsertHyperlink925插入超链接对话框
wdDialogInsertTableOfContents171插入目录对话框
wdDialogInsertPageNumbers294插入页码对话框
wdDialogInsertCaption357插入题注对话框
wdDialogInsertFootnote370插入脚注对话框

表格操作对话框

对话框名称编号说明
wdDialogTableInsertTable129插入表格对话框
wdDialogTableDeleteCells133删除单元格对话框
wdDialogTableFormatCell612表格单元格格式对话框

格式设置对话框

对话框名称编号说明
wdDialogFormatFont174字体格式对话框
wdDialogFormatParagraph175段落格式对话框
wdDialogFormatColumns177分栏对话框
wdDialogFormatTabs179制表位对话框
wdDialogFormatStyle180样式对话框
wdDialogFormatBordersAndShading189边框和底纹对话框
wdDialogFormatDropCap488首字下沉对话框
wdDialogFormatEncloseCharacters1162带圈字符对话框

工具和选项对话框

对话框名称编号说明
wdDialogToolsWordCount228字数统计对话框
wdDialogToolsBulletsNumbers196项目符号和编号对话框
wdDialogToolsOptionsGeneral203常规选项对话框
wdDialogToolsOptionsView204视图选项对话框
wdDialogToolsAdvancedSettings206高级设置对话框
wdDialogToolsOptionsPrint208打印选项对话框
wdDialogToolsOptionsSave209保存选项对话框
wdDialogToolsOptionsSpellingAndGrammar211拼写和语法选项对话框
wdDialogToolsOptionsUserInfo213用户信息选项对话框
wdDialogToolsOptionsEdit224编辑选项对话框
wdDialogToolsOptionsFileLocations225文件位置选项对话框
wdDialogToolsAutoCorrect378自动更正对话框

视图和显示对话框

对话框名称编号说明
wdDialogViewZoom577显示比例对话框
wdDialogDrawSnapToGrid633绘图网格对话框

其他对话框

对话框名称编号说明
wdDialogFormatChangeCase322更改大小写对话框
wdDialogTCSCTranslator1156繁简转换对话框

使用示例

基本调用示例

javascript
// 调用关于对话框
function showAboutDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(9).Show();
        console.log("关于对话框已显示");
    } catch (error) {
        console.error("显示关于对话框失败:", error);
    }
}

// 调用新建文件对话框
function showNewFileDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(79).Show();
        console.log("新建文件对话框已显示");
    } catch (error) {
        console.error("显示新建文件对话框失败:", error);
    }
}

// 调用打开文件对话框
function showOpenFileDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(80).Show();
        console.log("打开文件对话框已显示");
    } catch (error) {
        console.error("显示打开文件对话框失败:", error);
    }
}

// 调用另存为对话框
function showSaveAsDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(84).Show();
        console.log("另存为对话框已显示");
    } catch (error) {
        console.error("显示另存为对话框失败:", error);
    }
}

// 调用打印对话框
function showPrintDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(88).Show();
        console.log("打印对话框已显示");
    } catch (error) {
        console.error("显示打印对话框失败:", error);
    }
}

查找和替换对话框

javascript
// 调用查找对话框
function showFindDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(112).Show();
        console.log("查找对话框已显示");
    } catch (error) {
        console.error("显示查找对话框失败:", error);
    }
}

// 调用替换对话框
function showReplaceDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(117).Show();
        console.log("替换对话框已显示");
    } catch (error) {
        console.error("显示替换对话框失败:", error);
    }
}

// 调用定位对话框
function showGoToDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(896).Show();
        console.log("定位对话框已显示");
    } catch (error) {
        console.error("显示定位对话框失败:", error);
    }
}

插入操作对话框

javascript
// 调用插入符号对话框
function showInsertSymbolDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(162).Show();
        console.log("插入符号对话框已显示");
    } catch (error) {
        console.error("显示插入符号对话框失败:", error);
    }
}

// 调用插入图片对话框
function showInsertPictureDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(163).Show();
        console.log("插入图片对话框已显示");
    } catch (error) {
        console.error("显示插入图片对话框失败:", error);
    }
}

// 调用插入超链接对话框
function showInsertHyperlinkDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(925).Show();
        console.log("插入超链接对话框已显示");
    } catch (error) {
        console.error("显示插入超链接对话框失败:", error);
    }
}

// 调用插入表格对话框
function showInsertTableDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(129).Show();
        console.log("插入表格对话框已显示");
    } catch (error) {
        console.error("显示插入表格对话框失败:", error);
    }
}

格式设置对话框

javascript
// 调用字体格式对话框
function showFontDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(174).Show();
        console.log("字体格式对话框已显示");
    } catch (error) {
        console.error("显示字体格式对话框失败:", error);
    }
}

// 调用段落格式对话框
function showParagraphDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(175).Show();
        console.log("段落格式对话框已显示");
    } catch (error) {
        console.error("显示段落格式对话框失败:", error);
    }
}

// 调用页面设置对话框
function showPageSetupDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(178).Show();
        console.log("页面设置对话框已显示");
    } catch (error) {
        console.error("显示页面设置对话框失败:", error);
    }
}

工具和选项对话框

javascript
// 调用字数统计对话框
function showWordCountDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(228).Show();
        console.log("字数统计对话框已显示");
    } catch (error) {
        console.error("显示字数统计对话框失败:", error);
    }
}

// 调用选项对话框
function showOptionsDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(203).Show();
        console.log("选项对话框已显示");
    } catch (error) {
        console.error("显示选项对话框失败:", error);
    }
}

// 调用自动更正对话框
function showAutoCorrectDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(378).Show();
        console.log("自动更正对话框已显示");
    } catch (error) {
        console.error("显示自动更正对话框失败:", error);
    }
}

对话框管理器

对话框管理器类

javascript
// 对话框管理器
class DialogManager {
    constructor(ocxObj) {
        this.ocxObj = ocxObj;
        this.dialogMap = new Map();
        this.initDialogMap();
    }
    
    // 初始化对话框映射
    initDialogMap() {
        this.dialogMap.set('about', 9);
        this.dialogMap.set('new', 79);
        this.dialogMap.set('open', 80);
        this.dialogMap.set('saveAs', 84);
        this.dialogMap.set('print', 88);
        this.dialogMap.set('printSetup', 97);
        this.dialogMap.set('find', 112);
        this.dialogMap.set('replace', 117);
        this.dialogMap.set('goTo', 896);
        this.dialogMap.set('insertSymbol', 162);
        this.dialogMap.set('insertPicture', 163);
        this.dialogMap.set('insertHyperlink', 925);
        this.dialogMap.set('insertTable', 129);
        this.dialogMap.set('font', 174);
        this.dialogMap.set('paragraph', 175);
        this.dialogMap.set('pageSetup', 178);
        this.dialogMap.set('wordCount', 228);
        this.dialogMap.set('options', 203);
        this.dialogMap.set('autoCorrect', 378);
    }
    
    // 显示对话框
    showDialog(dialogName) {
        try {
            var dialogNumber = this.dialogMap.get(dialogName);
            if (dialogNumber === undefined) {
                console.error("未知的对话框名称:", dialogName);
                return false;
            }
            
            this.ocxObj.ActiveDocument.Application.Dialogs(dialogNumber).Show();
            console.log("对话框已显示:", dialogName);
            return true;
        } catch (error) {
            console.error("显示对话框失败:", dialogName, error);
            return false;
        }
    }
    
    // 显示文件操作对话框
    showFileDialog(dialogType) {
        var fileDialogs = {
            'new': 'new',
            'open': 'open',
            'saveAs': 'saveAs',
            'print': 'print',
            'printSetup': 'printSetup',
            'pageSetup': 'pageSetup'
        };
        
        var dialogName = fileDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的文件对话框类型:", dialogType);
            return false;
        }
    }
    
    // 显示编辑操作对话框
    showEditDialog(dialogType) {
        var editDialogs = {
            'find': 'find',
            'replace': 'replace',
            'goTo': 'goTo'
        };
        
        var dialogName = editDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的编辑对话框类型:", dialogType);
            return false;
        }
    }
    
    // 显示插入操作对话框
    showInsertDialog(dialogType) {
        var insertDialogs = {
            'symbol': 'insertSymbol',
            'picture': 'insertPicture',
            'hyperlink': 'insertHyperlink',
            'table': 'insertTable'
        };
        
        var dialogName = insertDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的插入对话框类型:", dialogType);
            return false;
        }
    }
    
    // 显示格式设置对话框
    showFormatDialog(dialogType) {
        var formatDialogs = {
            'font': 'font',
            'paragraph': 'paragraph',
            'pageSetup': 'pageSetup'
        };
        
        var dialogName = formatDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的格式对话框类型:", dialogType);
            return false;
        }
    }
    
    // 显示工具对话框
    showToolDialog(dialogType) {
        var toolDialogs = {
            'wordCount': 'wordCount',
            'options': 'options',
            'autoCorrect': 'autoCorrect'
        };
        
        var dialogName = toolDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的工具对话框类型:", dialogType);
            return false;
        }
    }
}

// 创建对话框管理器实例
const dialogManager = new DialogManager(ocxObj);

// 使用示例
dialogManager.showFileDialog('open');        // 显示打开文件对话框
dialogManager.showEditDialog('find');        // 显示查找对话框
dialogManager.showInsertDialog('picture');   // 显示插入图片对话框
dialogManager.showFormatDialog('font');      // 显示字体格式对话框
dialogManager.showToolDialog('wordCount');   // 显示字数统计对话框

对话框工具函数

javascript
// 对话框工具函数
class DialogUtils {
    // 显示常用对话框
    static showCommonDialogs() {
        var commonDialogs = {
            'about': '关于对话框',
            'new': '新建文件对话框',
            'open': '打开文件对话框',
            'saveAs': '另存为对话框',
            'print': '打印对话框',
            'find': '查找对话框',
            'replace': '替换对话框',
            'font': '字体格式对话框',
            'paragraph': '段落格式对话框',
            'wordCount': '字数统计对话框'
        };
        
        return commonDialogs;
    }
    
    // 显示对话框选择器
    static showDialogSelector() {
        var dialogs = this.showCommonDialogs();
        var dialogList = Object.keys(dialogs);
        
        console.log("可用的对话框:");
        dialogList.forEach(function(dialogName, index) {
            console.log(index + 1 + ". " + dialogs[dialogName]);
        });
        
        return dialogList;
    }
    
    // 批量显示对话框
    static showMultipleDialogs(dialogNames) {
        var results = [];
        
        dialogNames.forEach(function(dialogName) {
            var result = dialogManager.showDialog(dialogName);
            results.push({
                dialog: dialogName,
                success: result
            });
        });
        
        return results;
    }
    
    // 检查对话框是否可用
    static isDialogAvailable(dialogName) {
        try {
            var dialogNumber = dialogManager.dialogMap.get(dialogName);
            return dialogNumber !== undefined;
        } catch (error) {
            console.error("检查对话框可用性失败:", error);
            return false;
        }
    }
}

// 使用示例
var availableDialogs = DialogUtils.showDialogSelector();
var results = DialogUtils.showMultipleDialogs(['about', 'wordCount', 'options']);

注意事项

  1. 控件对象

    • 确保ocxObj对象已正确初始化
    • 检查ActiveDocument是否可用
    • 处理控件未加载的情况
  2. 对话框编号

    • 使用正确的对话框编号
    • 注意不同版本的差异
    • 验证编号的有效性
  3. 错误处理

    • 使用try-catch包装对话框调用
    • 处理对话框显示失败的情况
    • 提供用户友好的错误信息
  4. 用户体验

    • 考虑对话框的显示时机
    • 避免频繁调用对话框
    • 提供操作反馈
  5. 兼容性

    • 考虑不同浏览器的兼容性
    • 处理不同版本的差异
    • 测试各种场景
  6. 性能优化

    • 避免重复调用相同对话框
    • 合理使用对话框缓存
    • 优化对话框显示逻辑
  7. 安全性

    • 验证对话框调用的权限
    • 处理敏感操作的安全检查
    • 记录对话框使用日志
  8. 调试和测试

    • 记录对话框调用日志
    • 测试各种对话框组合
    • 验证对话框功能完整性