Skip to content

适用于WORD文档的简化方法

概述

本节的方法都为了简便用户编程的难度,封装的Word基本操作的方法。如果需做更细致的操作,请参考技术支持网站(dev.ntko.com)上的文档。

书签操作

GetBookmarkValue

语法:

javascript
GetBookmarkValue(BookmarkName)

功能:
此方法可以取得文档中指定书签的值。

参数:

名称必选/可选数据类型说明
BookmarkName必选string书签的索引或者名称

返回值:
String型字符串。书签值。

说明:
此方法可以取得文档中指定书签的值。

使用示例:

javascript
// 获取书签值
function getBookmarkValue() {
    try {
        // 通过书签名称获取值
        var bookmarkValue = OCX_OBJ.GetBookmarkValue("bookmark1");
        console.log("书签值:", bookmarkValue);
        return bookmarkValue;
    } catch (error) {
        console.error("获取书签值失败:", error.message);
        return "";
    }
}

// 获取多个书签值
function getMultipleBookmarkValues() {
    try {
        var bookmarks = ["bookmark1", "bookmark2", "bookmark3"];
        var values = {};
        
        for (var i = 0; i < bookmarks.length; i++) {
            values[bookmarks[i]] = OCX_OBJ.GetBookmarkValue(bookmarks[i]);
        }
        
        console.log("所有书签值:", values);
        return values;
    } catch (error) {
        console.error("获取多个书签值失败:", error.message);
        return {};
    }
}

SetBookmarkValue

语法:

javascript
SetBookmarkValue(BookmarkName, value)

功能:
设置指定书签的值。

参数:

名称必选/可选数据类型说明
BookmarkName必选string书签的索引或者名称
value必选string书签值

返回值:
无返回值。

说明:
设置指定书签的值。

使用示例:

javascript
// 设置书签值
function setBookmarkValue() {
    try {
        // 设置单个书签值
        OCX_OBJ.SetBookmarkValue("bookmark1", "新值");
        console.log("书签值设置完成");
    } catch (error) {
        console.error("设置书签值失败:", error.message);
    }
}

// 设置多个书签值
function setMultipleBookmarkValues() {
    try {
        var bookmarks = {
            "bookmark1": "值1",
            "bookmark2": "值2",
            "bookmark3": "值3"
        };
        
        for (var bookmarkName in bookmarks) {
            OCX_OBJ.SetBookmarkValue(bookmarkName, bookmarks[bookmarkName]);
        }
        
        console.log("多个书签值设置完成");
    } catch (error) {
        console.error("设置多个书签值失败:", error.message);
    }
}

// 动态设置书签值
function setDynamicBookmarkValue(bookmarkName, value) {
    try {
        OCX_OBJ.SetBookmarkValue(bookmarkName, value);
        console.log("书签 " + bookmarkName + " 的值已设置为: " + value);
    } catch (error) {
        console.error("设置书签值失败:", error.message);
    }
}

模板操作

AddTemplateFromLocal

语法:

javascript
AddTemplateFromLocal(filename, [PromptSelect], [IsConfirmConversions])

功能:
从本地增加插入模板到当前光标处。

参数:

名称必选/可选数据类型说明
filename必选string本地模板文件路径
PromptSelect可选bool是否允许用户选择
IsConfirmConversions可选bool当模板文件不是WORD类型时,是否提示转换,默认true

返回值:
无返回值。

说明:
从本地增加插入模板到当前光标处。

注意: 使用此方法就可以实现套红功能。该方法只对Word有效。

使用示例:

javascript
// 从本地插入模板
function addTemplateFromLocal() {
    try {
        // 基本模板插入
        OCX_OBJ.AddTemplateFromLocal("C:\\templates\\template1.docx");
        console.log("本地模板插入完成");
    } catch (error) {
        console.error("插入本地模板失败:", error.message);
    }
}

// 从本地插入模板(带用户选择)
function addTemplateFromLocalWithPrompt() {
    try {
        OCX_OBJ.AddTemplateFromLocal("C:\\templates\\template1.docx", true);
        console.log("本地模板插入完成(用户选择)");
    } catch (error) {
        console.error("插入本地模板失败:", error.message);
    }
}

// 从本地插入模板(不确认转换)
function addTemplateFromLocalNoConversion() {
    try {
        OCX_OBJ.AddTemplateFromLocal("C:\\templates\\template1.docx", false, false);
        console.log("本地模板插入完成(不确认转换)");
    } catch (error) {
        console.error("插入本地模板失败:", error.message);
    }
}

// 批量插入模板
function addMultipleTemplatesFromLocal() {
    try {
        var templates = [
            "C:\\templates\\template1.docx",
            "C:\\templates\\template2.docx",
            "C:\\templates\\template3.docx"
        ];
        
        for (var i = 0; i < templates.length; i++) {
            OCX_OBJ.AddTemplateFromLocal(templates[i]);
        }
        
        console.log("批量插入本地模板完成");
    } catch (error) {
        console.error("批量插入本地模板失败:", error.message);
    }
}

AddTemplateFromURL

语法:

javascript
AddTemplateFromURL(URL, [IsConfirmConversions])

功能:
该方法用来将一个从URL下载的word文档插入到当前文档的光标处。

参数:

名称必选/可选数据类型说明
URL必选string远程模板文件URL
IsConfirmConversions可选bool当模板文件不是WORD类型时,是否提示转换,默认true

返回值:
无返回值。

说明:
该方法用来将一个从URL下载的word文档插入到当前文档的光标处。可以用来使用预定义的模板套红。该函数的参数URL,可以是绝对或者相对当前网页的URL,用来指明要下载的Word文档的地址。

注意: 使用此方法就可以实现套红功能。该方法只对Word有效。

使用示例:

javascript
// 从URL插入模板
function addTemplateFromURL() {
    try {
        // 基本URL模板插入
        OCX_OBJ.AddTemplateFromURL("http://example.com/templates/template1.docx");
        console.log("URL模板插入完成");
    } catch (error) {
        console.error("插入URL模板失败:", error.message);
    }
}

// 从URL插入模板(不确认转换)
function addTemplateFromURLNoConversion() {
    try {
        OCX_OBJ.AddTemplateFromURL("http://example.com/templates/template1.docx", false);
        console.log("URL模板插入完成(不确认转换)");
    } catch (error) {
        console.error("插入URL模板失败:", error.message);
    }
}

// 从相对URL插入模板
function addTemplateFromRelativeURL() {
    try {
        OCX_OBJ.AddTemplateFromURL("./templates/template1.docx");
        console.log("相对URL模板插入完成");
    } catch (error) {
        console.error("插入相对URL模板失败:", error.message);
    }
}

// 批量插入URL模板
function addMultipleTemplatesFromURL() {
    try {
        var templates = [
            "http://example.com/templates/template1.docx",
            "http://example.com/templates/template2.docx",
            "http://example.com/templates/template3.docx"
        ];
        
        for (var i = 0; i < templates.length; i++) {
            OCX_OBJ.AddTemplateFromURL(templates[i]);
        }
        
        console.log("批量插入URL模板完成");
    } catch (error) {
        console.error("批量插入URL模板失败:", error.message);
    }
}

痕迹保留

TrackRevisions

语法:

javascript
TrackRevisions(vbool)

功能:
设置文档进入或者退出痕迹保留状态。

参数:

名称必选/可选数据类型说明
vbool可选bool是否保留痕迹

返回值:
无返回值

说明:
设置文档进入或者退出痕迹保留状态。true代表保留痕迹,false代表退出痕迹保留。

使用示例:

javascript
// 启用痕迹保留
function enableTrackRevisions() {
    try {
        OCX_OBJ.TrackRevisions(true);
        console.log("痕迹保留已启用");
    } catch (error) {
        console.error("启用痕迹保留失败:", error.message);
    }
}

// 禁用痕迹保留
function disableTrackRevisions() {
    try {
        OCX_OBJ.TrackRevisions(false);
        console.log("痕迹保留已禁用");
    } catch (error) {
        console.error("禁用痕迹保留失败:", error.message);
    }
}

// 切换痕迹保留状态
function toggleTrackRevisions() {
    try {
        // 获取当前状态(需要先检查状态)
        var currentState = OCX_OBJ.TrackRevisions;
        OCX_OBJ.TrackRevisions(!currentState);
        console.log("痕迹保留状态已切换");
    } catch (error) {
        console.error("切换痕迹保留状态失败:", error.message);
    }
}

EnterRevisionMode

语法:

javascript
EnterRevisionMode(vbool, [password])

功能:
设置文档进入或者退出强制痕迹保留状态。

参数:

名称必选/可选数据类型说明
vbool必选bool是否启用强制留痕
Password可选string修订模式保护密码

返回值:
无返回值

说明:
设置文档进入或者退出强制痕迹保留状态,即启用文件保护的修订模式。参数vbool 值为true代表保留痕迹,false代表退出痕迹保留。参数password代表文件保护修订模式的保护密码。

使用示例:

javascript
// 启用强制痕迹保留
function enableEnterRevisionMode() {
    try {
        OCX_OBJ.EnterRevisionMode(true);
        console.log("强制痕迹保留已启用");
    } catch (error) {
        console.error("启用强制痕迹保留失败:", error.message);
    }
}

// 启用强制痕迹保留(带密码)
function enableEnterRevisionModeWithPassword() {
    try {
        OCX_OBJ.EnterRevisionMode(true, "password123");
        console.log("强制痕迹保留已启用(带密码)");
    } catch (error) {
        console.error("启用强制痕迹保留失败:", error.message);
    }
}

// 禁用强制痕迹保留
function disableEnterRevisionMode() {
    try {
        OCX_OBJ.EnterRevisionMode(false);
        console.log("强制痕迹保留已禁用");
    } catch (error) {
        console.error("禁用强制痕迹保留失败:", error.message);
    }
}

// 切换强制痕迹保留状态
function toggleEnterRevisionMode() {
    try {
        // 获取当前状态(需要先检查状态)
        var currentState = OCX_OBJ.EnterRevisionMode;
        OCX_OBJ.EnterRevisionMode(!currentState);
        console.log("强制痕迹保留状态已切换");
    } catch (error) {
        console.error("切换强制痕迹保留状态失败:", error.message);
    }
}

方法分类总结

分类方法功能说明
书签操作GetBookmarkValue获取文档中指定书签的值书签读取
SetBookmarkValue设置指定书签的值书签设置
模板操作AddTemplateFromLocal从本地插入模板到当前光标处本地模板
AddTemplateFromURL从URL下载并插入模板到当前光标处远程模板
痕迹保留TrackRevisions设置文档进入或退出痕迹保留状态痕迹保留
EnterRevisionMode设置文档进入或退出强制痕迹保留状态强制痕迹保留

使用流程

1. 书签操作流程

javascript
// 书签操作流程
function bookmarkOperationFlow() {
    try {
        // 设置书签值
        OCX_OBJ.SetBookmarkValue("title", "文档标题");
        OCX_OBJ.SetBookmarkValue("author", "作者姓名");
        OCX_OBJ.SetBookmarkValue("date", "2024-01-01");
        
        // 获取书签值
        var title = OCX_OBJ.GetBookmarkValue("title");
        var author = OCX_OBJ.GetBookmarkValue("author");
        var date = OCX_OBJ.GetBookmarkValue("date");
        
        console.log("书签操作完成:", { title, author, date });
    } catch (error) {
        console.error("书签操作失败:", error.message);
    }
}

2. 模板操作流程

javascript
// 模板操作流程
function templateOperationFlow() {
    try {
        // 从本地插入模板
        OCX_OBJ.AddTemplateFromLocal("C:\\templates\\header.docx");
        
        // 从URL插入模板
        OCX_OBJ.AddTemplateFromURL("http://example.com/templates/footer.docx");
        
        console.log("模板操作完成");
    } catch (error) {
        console.error("模板操作失败:", error.message);
    }
}

3. 痕迹保留流程

javascript
// 痕迹保留流程
function revisionFlow() {
    try {
        // 启用痕迹保留
        OCX_OBJ.TrackRevisions(true);
        
        // 启用强制痕迹保留
        OCX_OBJ.EnterRevisionMode(true, "password123");
        
        console.log("痕迹保留设置完成");
    } catch (error) {
        console.error("痕迹保留设置失败:", error.message);
    }
}

完整示例

1. 基础WORD文档操作

javascript
// 基础WORD文档操作示例
function basicWordDocumentOperation() {
    try {
        // 设置书签值
        OCX_OBJ.SetBookmarkValue("title", "文档标题");
        OCX_OBJ.SetBookmarkValue("author", "作者姓名");
        
        // 获取书签值
        var title = OCX_OBJ.GetBookmarkValue("title");
        var author = OCX_OBJ.GetBookmarkValue("author");
        
        console.log("基础WORD文档操作完成:", { title, author });
    } catch (error) {
        console.error("基础WORD文档操作失败:", error.message);
    }
}

2. 高级WORD文档管理

javascript
// 高级WORD文档管理示例
function advancedWordDocumentManagement() {
    try {
        // 设置多个书签值
        var bookmarks = {
            "title": "高级文档标题",
            "author": "高级作者",
            "date": "2024-01-01",
            "version": "1.0"
        };
        
        for (var bookmarkName in bookmarks) {
            OCX_OBJ.SetBookmarkValue(bookmarkName, bookmarks[bookmarkName]);
        }
        
        // 从本地插入模板
        OCX_OBJ.AddTemplateFromLocal("C:\\templates\\header.docx");
        
        // 从URL插入模板
        OCX_OBJ.AddTemplateFromURL("http://example.com/templates/footer.docx");
        
        // 启用痕迹保留
        OCX_OBJ.TrackRevisions(true);
        
        console.log("高级WORD文档管理完成");
    } catch (error) {
        console.error("高级WORD文档管理失败:", error.message);
    }
}

3. WORD文档质量控制

javascript
// WORD文档质量控制示例
function wordDocumentQualityControl() {
    try {
        // 启用强制痕迹保留
        OCX_OBJ.EnterRevisionMode(true, "password123");
        
        // 设置质量控制书签
        OCX_OBJ.SetBookmarkValue("quality_check", "已通过");
        OCX_OBJ.SetBookmarkValue("reviewer", "审核员");
        OCX_OBJ.SetBookmarkValue("review_date", "2024-01-01");
        
        // 插入质量控制模板
        OCX_OBJ.AddTemplateFromLocal("C:\\templates\\quality_control.docx");
        
        console.log("WORD文档质量控制完成");
    } catch (error) {
        console.error("WORD文档质量控制失败:", error.message);
    }
}

注意事项

  1. Word专用:这些方法只对Word文档有效
  2. 书签操作:确保书签名称正确,避免使用特殊字符
  3. 模板路径:确保模板文件路径正确且文件存在
  4. URL访问:确保URL可访问且文件格式正确
  5. 痕迹保留:合理使用痕迹保留功能
  6. 密码保护:妥善保管修订模式密码
  7. 错误处理:实现完善的错误处理机制

错误处理

javascript
// WORD文档操作错误处理
function handleWordDocumentError(operation, error) {
    console.error("WORD文档操作失败:", operation, error.message);
    
    switch(operation) {
        case 'GetBookmarkValue':
            console.log("获取书签值失败,请检查:");
            console.log("1. 书签名称是否正确");
            console.log("2. 书签是否存在");
            console.log("3. 文档是否已打开");
            break;
        case 'SetBookmarkValue':
            console.log("设置书签值失败,请检查:");
            console.log("1. 书签名称是否正确");
            console.log("2. 书签是否存在");
            console.log("3. 值是否有效");
            break;
        case 'AddTemplateFromLocal':
            console.log("插入本地模板失败,请检查:");
            console.log("1. 文件路径是否正确");
            console.log("2. 文件是否存在");
            console.log("3. 文件格式是否支持");
            break;
        case 'AddTemplateFromURL':
            console.log("插入URL模板失败,请检查:");
            console.log("1. URL是否正确");
            console.log("2. 网络连接是否正常");
            console.log("3. 文件是否可访问");
            break;
        default:
            console.log("未知WORD文档操作失败");
    }
}

最佳实践

1. WORD文档操作最佳实践

javascript
// WORD文档操作最佳实践
function wordDocumentOperationBestPractice() {
    try {
        // 书签操作最佳实践
        function bookmarkBestPractice() {
            try {
                // 设置书签值
                OCX_OBJ.SetBookmarkValue("title", "文档标题");
                OCX_OBJ.SetBookmarkValue("author", "作者姓名");
                
                // 获取书签值
                var title = OCX_OBJ.GetBookmarkValue("title");
                var author = OCX_OBJ.GetBookmarkValue("author");
                
                console.log("书签操作成功:", { title, author });
            } catch (error) {
                handleWordDocumentError('SetBookmarkValue', error);
            }
        }
        
        // 执行书签操作
        bookmarkBestPractice();
        
    } catch (error) {
        console.error("WORD文档操作最佳实践失败:", error.message);
    }
}

2. WORD文档管理最佳实践

javascript
// WORD文档管理最佳实践
function wordDocumentManagementBestPractice() {
    try {
        // WORD文档管理配置
        var wordConfig = {
            bookmarks: {
                "title": "文档标题",
                "author": "作者姓名",
                "date": "2024-01-01"
            },
            templates: {
                local: "C:\\templates\\template.docx",
                url: "http://example.com/templates/template.docx"
            },
            revision: {
                enabled: true,
                password: "password123"
            }
        };
        
        // 应用WORD文档管理配置
        function applyWordConfig() {
            try {
                // 设置书签值
                for (var bookmarkName in wordConfig.bookmarks) {
                    OCX_OBJ.SetBookmarkValue(bookmarkName, wordConfig.bookmarks[bookmarkName]);
                }
                
                // 插入模板
                OCX_OBJ.AddTemplateFromLocal(wordConfig.templates.local);
                OCX_OBJ.AddTemplateFromURL(wordConfig.templates.url);
                
                // 启用痕迹保留
                if (wordConfig.revision.enabled) {
                    OCX_OBJ.EnterRevisionMode(true, wordConfig.revision.password);
                }
                
                console.log("WORD文档管理配置应用成功");
            } catch (error) {
                console.error("应用WORD文档管理配置失败:", error.message);
            }
        }
        
        // 应用配置
        applyWordConfig();
        
    } catch (error) {
        console.error("WORD文档管理最佳实践失败:", error.message);
    }
}

3. WORD文档质量控制最佳实践

javascript
// WORD文档质量控制最佳实践
function wordDocumentQualityControlBestPractice() {
    try {
        // WORD文档质量控制
        function controlWordQuality() {
            try {
                // 设置质量控制书签
                OCX_OBJ.SetBookmarkValue("quality_check", "已通过");
                OCX_OBJ.SetBookmarkValue("reviewer", "审核员");
                OCX_OBJ.SetBookmarkValue("review_date", "2024-01-01");
                
                // 插入质量控制模板
                OCX_OBJ.AddTemplateFromLocal("C:\\templates\\quality_control.docx");
                
                // 启用强制痕迹保留
                OCX_OBJ.EnterRevisionMode(true, "quality_password");
                
                console.log("WORD文档质量控制完成");
            } catch (error) {
                console.error("WORD文档质量控制失败:", error.message);
            }
        }
        
        // 执行质量控制
        controlWordQuality();
        
    } catch (error) {
        console.error("WORD文档质量控制最佳实践失败:", error.message);
    }
}

技术要点

  1. Word专用:这些方法只对Word文档有效
  2. 书签操作:确保书签名称正确,避免使用特殊字符
  3. 模板路径:确保模板文件路径正确且文件存在
  4. URL访问:确保URL可访问且文件格式正确
  5. 痕迹保留:合理使用痕迹保留功能
  6. 密码保护:妥善保管修订模式密码
  7. 错误处理:完善的错误处理机制

总结

适用于WORD文档的简化方法为软航OFFICE文档控件提供了便捷的Word文档操作功能。通过GetBookmarkValue和SetBookmarkValue方法可以方便地操作书签,通过AddTemplateFromLocal和AddTemplateFromURL方法可以实现模板套红功能,通过TrackRevisions和EnterRevisionMode方法可以控制痕迹保留状态,为开发者提供了简化的Word文档操作接口,大大降低了编程难度,提升了开发效率和用户体验。