Skip to content

新建、打开和保存文档相关方法

概述

本节介绍软航OFFICE文档控件国产化版本新建、打开和保存文档相关方法,这些方法允许开发者创建、打开、保存各种格式的文档,为文档管理系统提供完整的文档操作能力。

文档创建方法

CreateNew

语法:

javascript
CreateNew(ProgId)

功能:
创建一个新文档对象。

参数:

名称必选/可选数据类型说明
ProgId必选string文档类型

返回值:
无返回值

说明:
创建一个新文档对象。必须指定ProgID。Linux环境下常用的ProgID有:

文档类型ProgID
Word文档Word.Document
PowerPoint幻灯片PowerPoint.Show
Excel工作表Excel.Sheet

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 创建Word文档
obj.CreateNew("Word.Document");
console.log("Word文档已创建");

// 创建Excel工作表
obj.CreateNew("Excel.Sheet");
console.log("Excel工作表已创建");

// 创建PowerPoint幻灯片
obj.CreateNew("PowerPoint.Show");
console.log("PowerPoint幻灯片已创建");

文档打开方法

BeginOpenFromURL

语法:

javascript
BeginOpenFromURL(URL, [IsShowProgress], [ReadOnly], [ProgId])

功能:
以异步方式开始打开URL文档。

参数:

名称必选/可选数据类型说明
URL必选string处理后台打开的URL地址
IsShowProgress可选bool是否显示进度条
ReadOnly可选bool是否只读打开
ProgId可选string文档类型

返回值:
无返回值

说明:
以异步方式开始打开URL文档。该方法执行完毕,控件将从URL下载指定文档并打开。下载完毕可以触发OnDocumentOpened、AfterOpenFromURL等事件。

注意: 目前在linux环境下,BeginOpenFromURL与OpenFromURL无实际区别,建议直接使用OpenFromURL方法。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 异步打开URL文档
obj.BeginOpenFromURL("http://example.com/document.docx");
console.log("开始异步打开文档");

// 异步打开只读文档
obj.BeginOpenFromURL("http://example.com/document.docx", true, true);
console.log("开始异步打开只读文档");

// 异步打开指定类型文档
obj.BeginOpenFromURL("http://example.com/document", true, false, "Word.Document");
console.log("开始异步打开指定类型文档");

OpenFromURL

语法:

javascript
OpenFromURL(URL, [ReadOnly], [ProgId])

功能:
该函数使用HTTP协议从URL(同步)打开文件。

参数:

名称必选/可选数据类型说明
URL必选string处理后台打开的URL地址
ReadOnly可选bool是否只读打开
ProgId可选string文档类型

返回值:
无返回值

说明:
URL可以是相对于控件所在的网页的相对URL或者是绝对URL。只要打开的URL返回一个正确的Office文档,而不管其扩展名是否正确,该函数都能够自动正确判断文档类型。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 从URL打开文档
obj.OpenFromURL("http://example.com/document.docx");
console.log("文档已从URL打开");

// 从URL只读打开文档
obj.OpenFromURL("http://example.com/document.docx", true);
console.log("文档已从URL只读打开");

// 从URL打开指定类型文档
obj.OpenFromURL("http://example.com/document", false, "Word.Document");
console.log("指定类型文档已从URL打开");

OpenLocalFile

语法:

javascript
OpenLocalFile(Document, [ReadOnly], [ProgId])

功能:
打开本地文件。

参数:

名称必选/可选数据类型说明
Document必选string本地文档路径
ReadOnly可选bool是否只读打开
ProgId可选string文档类型

返回值:
无返回值

说明:
第一个参数Document必须是一个有效的文件磁盘路径。第二个参数ReadOnly禁止修改编辑。第三个参数ProgID可以省略。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 打开本地文件
obj.OpenLocalFile("/path/to/document.docx");
console.log("本地文件已打开");

// 只读打开本地文件
obj.OpenLocalFile("/path/to/document.docx", true);
console.log("本地文件已只读打开");

// 打开指定类型本地文件
obj.OpenLocalFile("/path/to/document", false, "Word.Document");
console.log("指定类型本地文件已打开");

文档保存方法

SaveToURL

语法:

javascript
SaveToURL(URL, FileFieldName, [CPARA], [FileName], [HTMLForm], [IsShowUI])

功能:
该函数使用HTTP协议将文件保存到URL。

参数:

名称必选/可选数据类型说明
URL必选string处理后台保存的URL地址
FileFieldName必选string控件文件域名称
CPARA可选string可选参数
FileName可选string文件名
HTMLForm可选string智能提交的form表单ID名称
IsShowUI可选bool是否显示进度条

返回值:
提交URL之后从服务器返回的数据。

说明:
该函数使用HTTP协议将文件保存到URL。通过增加一个可选参数HTMLForm来引入了"智能提交"技术。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存到URL
var result = obj.SaveToURL("http://example.com/save", "DocFile");
console.log("保存结果:", result);

// 保存到URL并指定文件名
var result = obj.SaveToURL("http://example.com/save", "DocFile", "", "NewDoc.docx");
console.log("保存结果:", result);

// 保存到URL并提交表单
var result = obj.SaveToURL("http://example.com/save", "DocFile", "key=value&type=word", "NewDoc.docx", "myform");
console.log("保存结果:", result);

SaveToLocal

语法:

javascript
SaveToLocal([SaveAsDocument], [OverwriteExisting], [isPrompt])

功能:
将文件保存到本地。

参数:

名称必选/可选数据类型说明
SaveAsDocument可选string保存到本地的文档路径
OverwriteExisting可选bool是否覆盖现文件
isPrompt可选bool是否提示用户选择

返回值:
无返回值

说明:
将文件保存到本地。两个参数都是可选的。如果缺少第一个参数,将保存到原位置;第二个参数缺省是FALSE,不覆盖现有文件。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存到原位置
obj.SaveToLocal();
console.log("文件已保存到原位置");

// 保存到指定位置
obj.SaveToLocal("/path/to/save/document.docx");
console.log("文件已保存到指定位置");

// 保存并覆盖现有文件
obj.SaveToLocal("/path/to/save/document.docx", true);
console.log("文件已保存并覆盖现有文件");

格式转换保存方法

PublishAsHTMLToURL

语法:

javascript
PublishAsHTMLToURL(URL, FileFieldName, [CPARA], [FileName], [HTMLForm], [IsShowUI])

功能:
将文件保存成HTML文件到URL。

参数:
与SaveToURL方法相同

返回值:
提交URL之后从服务器返回的数据。

说明:
该函数和SaveToURL函数的参数及返回值含义完全一致。不同之处在于,FileName现在可能有多个值,包括HTML文件,相关的图片文件等等多个文件。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存为HTML到URL
var result = obj.PublishAsHTMLToURL("http://example.com/save", "HtmlFile");
console.log("HTML保存结果:", result);

// 保存为HTML并指定文件名
var result = obj.PublishAsHTMLToURL("http://example.com/save", "HtmlFile", "", "document.html");
console.log("HTML保存结果:", result);

SaveAsHTMLFile

语法:

javascript
SaveAsHTMLFile(FileName, [PromptSelect])

功能:
将文档保存为HTML文件到本地。

参数:

名称必选/可选数据类型说明
FileName必选string另存为HTML的文件名
PromptSelect可选bool是否提示用户选择

返回值:
无返回值

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存为HTML文件
obj.SaveAsHTMLFile("/path/to/document.html");
console.log("HTML文件已保存");

// 保存为HTML文件并提示用户
obj.SaveAsHTMLFile("/path/to/document.html", true);
console.log("HTML文件已保存并提示用户");

PublishAsPDFToURL

语法:

javascript
PublishAsPDFToURL(URL, FileFieldName, [CPARA], [FileName], [HTMLForm], [SheetName], [IsShowUI], [IsShowMsg], [IsUseSecurity], [OwnerPass], [IsPermitPrint], [IsPermitCopy])

功能:
将文档控件中的文档转换为PDF文件并保存到URL。

参数:

名称必选/可选数据类型说明
URL必选string处理后台保存的URL地址
FileFieldName必选string控件文件域名称
CPARA可选string可选参数
FileName可选string文件名
HTMLForm可选string智能提交的form表单ID名称
SheetName可选stringEXCEL工作表名称
IsShowUI可选bool是否显示进度条
IsShowMsg可选bool保存成功是否显示提示
IsUseSecurity可选bool是否对PDF文件使用安全特性
OwnerPass可选stringPDF文件的所有者口令
IsPermitPrint可选boolPDF文件是否可以被打印
IsPermitCopy可选boolPDF文件是否可以被拷贝文本

返回值:
提交URL之后从服务器返回的数据。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存为PDF到URL
var result = obj.PublishAsPDFToURL("http://example.com/save", "PdfFile");
console.log("PDF保存结果:", result);

// 保存为PDF并指定文件名
var result = obj.PublishAsPDFToURL("http://example.com/save", "PdfFile", "", "document.pdf");
console.log("PDF保存结果:", result);

SaveAsPDFFile

语法:

javascript
SaveAsPDFFile(FileName, [PromptSelect], [SheetName], [IsShowMsg], [IsUseSecurity], [OwnerPass], [IsPermitPrint], [IsPermitCopy])

功能:
将文档控件中的文档保存为PDF文件到本地磁盘。

参数:

名称必选/可选数据类型说明
FileName必选string另存到本地的路径及文件名
PromptSelect可选bool是否提示用户选择
SheetName可选stringEXCEL工作表名称
IsShowMsg可选bool保存成功是否显示提示
IsUseSecurity可选bool是否对PDF文件使用安全特性
OwnerPass可选stringPDF文件的所有者口令
IsPermitPrint可选boolPDF文件是否可以被打印
IsPermitCopy可选boolPDF文件是否可以被拷贝文本

返回值:
无返回值

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存为PDF文件
obj.SaveAsPDFFile("/path/to/document.pdf");
console.log("PDF文件已保存");

// 保存为PDF文件并提示用户
obj.SaveAsPDFFile("/path/to/document.pdf", true);
console.log("PDF文件已保存并提示用户");

PublishAsOFDToURL

语法:

javascript
PublishAsOFDToURL(URL, FileFieldName, [CPARA], [FileName], [HTMLForm], [SheetName], [IsShowUI])

功能:
将文档控件中的文档转换为OFD文件并保存到URL。

参数:
与SaveToURL方法相同,增加SheetName和IsShowUI参数

返回值:
提交URL之后从服务器返回的数据。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存为OFD到URL
var result = obj.PublishAsOFDToURL("http://example.com/save", "OfdFile");
console.log("OFD保存结果:", result);

// 保存为OFD并指定文件名
var result = obj.PublishAsOFDToURL("http://example.com/save", "OfdFile", "", "document.ofd");
console.log("OFD保存结果:", result);

SaveAsOFDFile

语法:

javascript
SaveAsOFDFile(FileName, [PromptSelect])

功能:
将文档控件中的文档保存为OFD文件并保存到本地磁盘。

参数:

名称必选/可选数据类型说明
FileName必选string另存到本地的路径及文件名
PromptSelect可选bool是否提示用户选择

返回值:
无返回值

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存为OFD文件
obj.SaveAsOFDFile("/path/to/document.ofd");
console.log("OFD文件已保存");

// 保存为OFD文件并提示用户
obj.SaveAsOFDFile("/path/to/document.ofd", true);
console.log("OFD文件已保存并提示用户");

其他格式保存方法

SaveAsOtherFormatToURL

语法:

javascript
SaveAsOtherFormatToURL(saveformat, URL, FileFieldName, [CPARA], [FileName], [HTMLForm], [IsShowUI])

功能:
该方法用来将文档保存为其他格式的文件到指定的URL。

参数:

名称必选/可选数据类型说明
saveformat必选long兼容格式文件类型
URL必选string处理后台保存的URL地址
FileFieldName必选string控件文件域名称
CPARA可选string可选参数
FileName可选string文件名
HTMLForm可选string智能提交的form表单ID名称
IsShowUI可选bool是否显示进度条

返回值:
提交URL之后从服务器返回的数据。

说明:
第一个参数指明要保存的文件类型:

格式说明
0Word Txt格式保存为word Txt格式
1MHT格式保存为MHT格式
2XML格式保存为XML格式
3RTF格式保存为RTF格式
4UnicodeText格式保存为UnicodeText格式
5兼容WORD文档格式保存为兼容WORD文档格式

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存为TXT格式到URL
var result = obj.SaveAsOtherFormatToURL(0, "http://example.com/save", "TxtFile");
console.log("TXT保存结果:", result);

// 保存为RTF格式到URL
var result = obj.SaveAsOtherFormatToURL(3, "http://example.com/save", "RtfFile", "", "document.rtf");
console.log("RTF保存结果:", result);

SaveAsOtherFormatFile

语法:

javascript
SaveAsOtherFormatFile(saveformat, FileName, [PromptSelect])

功能:
该方法用来将文档保存为其他格式的文件到本地指定的文件全路径。

参数:

名称必选/可选数据类型说明
saveformat必选long兼容格式文件类型
FileName必选string另存为文件名
PromptSelect可选bool是否提示用户选择

返回值:
无返回值

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存为TXT格式文件
obj.SaveAsOtherFormatFile(0, "/path/to/document.txt");
console.log("TXT文件已保存");

// 保存为RTF格式文件并提示用户
obj.SaveAsOtherFormatFile(3, "/path/to/document.rtf", true);
console.log("RTF文件已保存并提示用户");

文件操作方法

IsLocalFileExists

语法:

javascript
IsLocalFileExists(FileName)

功能:
判断客户端本机指定文件是否存在。

参数:

名称必选/可选数据类型说明
FileName必选string打开文件类型描述字符串

返回值:
布尔型;true代表存在,false代表不存在。

说明:
本方法可以与OpenLocalFile、SaveToLocal等操作本地文件的方法搭配使用,即可以先判断本地文件是否存在,再进行打开或保存。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 检查文件是否存在
var filePath = "/path/to/document.docx";
if (obj.IsLocalFileExists(filePath)) {
    console.log("文件存在,可以打开");
    obj.OpenLocalFile(filePath);
} else {
    console.log("文件不存在");
}

GetBase64Value

语法:

javascript
GetBase64Value()

功能:
读取控件中文件数据的BASE64编码。

返回值:
BASE64编码字符串。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 获取文件BASE64编码
var base64Data = obj.GetBase64Value();
console.log("文件BASE64编码:", base64Data);

PutBase64Value

语法:

javascript
PutBase64Value(varValue, [ProgId])

功能:
设定控件中文件数据的BASE64编码。

参数:

名称必选/可选数据类型说明
varValue必选stringBase64编码字符串
ProgId可选string是否强制指定文件类型

返回值:
无返回值

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 设置文件BASE64编码
obj.PutBase64Value(base64Data);
console.log("文件BASE64编码已设置");

// 设置文件BASE64编码并指定类型
obj.PutBase64Value(base64Data, "Word.Document");
console.log("文件BASE64编码已设置并指定类型");

NCO文件操作方法

OpenNCOFromLocal

语法:

javascript
OpenNCOFromLocal(Filename, [PromptSelect])

功能:
从本地打开以NTKO压缩的文件类型压缩的OFFICE文档。

参数:

名称必选/可选数据类型说明
FileName必选string本地文件路径
PromptSelect可选bool是否提示用户选择

返回值:
无返回值

说明:
第一个参数指定文件路径和文件名,第二个可选参数指明是否提示用户选择,默认是提示。必须FileName指定的文件必须是NTKO压缩的文件类型(*.nco文件)。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 打开NCO文件
obj.OpenNCOFromLocal("/path/to/document.nco");
console.log("NCO文件已打开");

// 打开NCO文件并提示用户
obj.OpenNCOFromLocal("/path/to/document.nco", true);
console.log("NCO文件已打开并提示用户");

SaveNCOToLocal

语法:

javascript
SaveNCOToLocal(Filename, [PromptSelect])

功能:
将压缩的OFFICE文档以NTKO压缩的文件类型(*.nco文件)保存到本地。

参数:

名称必选/可选数据类型说明
FileName必选string本地文件路径
PromptSelect可选bool是否提示用户选择

返回值:
无返回值

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存为NCO文件
obj.SaveNCOToLocal("/path/to/document.nco");
console.log("NCO文件已保存");

// 保存为NCO文件并提示用户
obj.SaveNCOToLocal("/path/to/document.nco", true);
console.log("NCO文件已保存并提示用户");

OpenNCOFromURL

语法:

javascript
OpenNCOFromURL(URL, ProgId)

功能:
从URL打开以NTKO压缩的文件类型压缩的OFFICE文档。

参数:

名称必选/可选数据类型说明
URL必选string处理后台打开的URL地址
ProgId必选string文档类型

返回值:
无返回值

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 从URL打开NCO文件
obj.OpenNCOFromURL("http://example.com/document.nco", "wps.document");
console.log("NCO文件已从URL打开");

SaveNCOToURL

语法:

javascript
SaveNCOToURL(URL, FileFieldName, [CPARA], [FileName], [HTMLForm], [IsShowUI])

功能:
将OFFICE文档,以NTKO压缩的文件类型保存到指定的URL。

参数:
与SaveToURL方法相同

返回值:
提交URL之后从服务器返回的数据。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 保存NCO文件到URL
var result = obj.SaveNCOToURL("http://example.com/save", "NcoFile");
console.log("NCO文件保存结果:", result);

// 保存NCO文件到URL并指定文件名
var result = obj.SaveNCOToURL("http://example.com/save", "NcoFile", "", "document.nco");
console.log("NCO文件保存结果:", result);

方法分类总结

分类方法功能说明
文档创建CreateNew创建新文档创建一个新文档对象
文档打开BeginOpenFromURL异步打开URL文档以异步方式开始打开URL文档
文档打开OpenFromURL同步打开URL文档使用HTTP协议从URL打开文件
文档打开OpenLocalFile打开本地文件打开本地文件
文档保存SaveToURL保存到URL使用HTTP协议将文件保存到URL
文档保存SaveToLocal保存到本地将文件保存到本地
格式转换PublishAsHTMLToURL保存为HTML到URL将文件保存成HTML文件到URL
格式转换SaveAsHTMLFile保存为HTML到本地将文档保存为HTML文件到本地
格式转换PublishAsPDFToURL保存为PDF到URL将文档转换为PDF文件并保存到URL
格式转换SaveAsPDFFile保存为PDF到本地将文档保存为PDF文件到本地磁盘
格式转换PublishAsOFDToURL保存为OFD到URL将文档转换为OFD文件并保存到URL
格式转换SaveAsOFDFile保存为OFD到本地将文档保存为OFD文件到本地磁盘
其他格式SaveAsOtherFormatToURL保存为其他格式到URL将文档保存为其他格式的文件到URL
其他格式SaveAsOtherFormatFile保存为其他格式到本地将文档保存为其他格式的文件到本地
文件操作IsLocalFileExists检查文件是否存在判断客户端本机指定文件是否存在
文件操作GetBase64Value获取BASE64编码读取控件中文件数据的BASE64编码
文件操作PutBase64Value设置BASE64编码设定控件中文件数据的BASE64编码
NCO文件OpenNCOFromLocal打开本地NCO文件从本地打开NTKO压缩的文件
NCO文件SaveNCOToLocal保存NCO文件到本地将文档保存为NCO文件到本地
NCO文件OpenNCOFromURL从URL打开NCO文件从URL打开NTKO压缩的文件
NCO文件SaveNCOToURL保存NCO文件到URL将文档保存为NCO文件到URL

注意事项

  1. 文档类型:确保使用正确的ProgID
  2. 文件路径:确保文件路径有效且可访问
  3. 网络连接:URL操作需要网络连接
  4. 错误处理:实现完善的错误处理机制
  5. 性能考虑:避免频繁的文件操作
  6. 资源管理:及时清理不需要的资源
  7. 用户体验:确保操作不影响用户体验

最佳实践

1. 文档操作最佳实践

javascript
// 文档操作最佳实践
function documentOperationBestPractice() {
    var obj = OfficeControlObj;
    
    // 检查文件是否存在
    function checkFileBeforeOpen(filePath) {
        if (obj.IsLocalFileExists(filePath)) {
            obj.OpenLocalFile(filePath);
            return true;
        } else {
            console.log("文件不存在:", filePath);
            return false;
        }
    }
    
    // 安全保存文档
    function safeSaveDocument(url, fileFieldName) {
        try {
            var result = obj.SaveToURL(url, fileFieldName);
            if (result) {
                console.log("文档保存成功");
                return true;
            } else {
                console.log("文档保存失败");
                return false;
            }
        } catch (error) {
            console.error("保存文档时发生错误:", error);
            return false;
        }
    }
    
    return {
        checkFileBeforeOpen: checkFileBeforeOpen,
        safeSaveDocument: safeSaveDocument
    };
}

2. 错误处理

javascript
// 文档操作错误处理
function handleDocumentOperationError(operationType, error) {
    console.error("文档操作失败:", operationType, error.message);
    
    switch(operationType) {
        case 'CreateNew':
            console.log("创建文档失败,请检查:");
            console.log("1. ProgID是否正确");
            console.log("2. 文档类型是否支持");
            console.log("3. 控件状态是否正常");
            break;
        case 'OpenFromURL':
            console.log("从URL打开文档失败,请检查:");
            console.log("1. URL是否有效");
            console.log("2. 网络连接是否正常");
            console.log("3. 文档是否存在");
            break;
        case 'SaveToURL':
            console.log("保存到URL失败,请检查:");
            console.log("1. URL是否有效");
            console.log("2. 服务器是否可访问");
            console.log("3. 文件域名称是否正确");
            break;
        default:
            console.log("未知文档操作失败");
    }
}

技术要点

  1. 文档类型:确保使用正确的ProgID
  2. 文件路径:确保文件路径有效且可访问
  3. 网络连接:URL操作需要网络连接
  4. 错误处理:完善的错误处理机制
  5. 性能优化:避免频繁的文件操作
  6. 资源管理:及时清理不需要的资源
  7. 用户体验:确保操作不影响用户体验