仅支持 aardio v46.8.0 以上版本 使用 VS 2019 构建的私有 dsoframer3.ocx,CLSID、LIBID、接口和事件 GUID 均与旧版区分。
仅通过 com.lite.appData 从库内嵌资源免注册加载,不需要注册 OCX,也不通过旧版 ProgID 查找控件。
控件默认隐藏边框(borderStyle = 0)、菜单栏、标题栏与工具条(toolbars = false);
如需显示 Office/WPS 的 Ribbon 工具栏,可将 Word 文档对象请参考:
https://docs.microsoft.com/en-us/office/vba/api/word.document Excel 文档对象请参考:
https://docs.microsoft.com/en-us/office/vba/api/excel.workbook PowerPoint 文档对象请参考:
https://docs.microsoft.com/en-us/office/vba/api/powerpoint.presentation 相关库: fsys.openXml, com.excel, com.doc, com.powerPoint 许可证:必读
dsoframer3 aardio 维护版
toolbars 设为 true。
仍需安装支持嵌入的 Office/WPS;本机文档服务器的注册与运行状态仍会影响打开文档。close() 关闭当前嵌入文档并自动释放已缓存的 activeDocument 与事件连接。
save() 无参数时原位保存到打开路径;传入路径时另存到目标文件(Word 自动识别 .docx/.docm/.dotx/.rtf 格式)。
需要显式指定保存格式枚举值时可使用 saveAs(io.fullpath(path), format)。
打开及保存由 Office/WPS 同步完成;建议先显示宿主窗口,以便看见登录或其他交互提示。~\lib\com\dsoFramer\.res\LICENSE.TXT
~\lib\com\dsoFramer\.res\ms-KB311765-eula.txt
基于 DsoFramer 维护的 aardio 3.0 控件,
用于嵌入 Office/WPS 文档,仍依赖本机文档服务器。
使用 VS 2019 构建,独立 COM 标识,仅通过 com.lite 免注册加载。
可内嵌到 EXE 发布;不使用系统注册的旧版 dsoFramer。
不同 Office/WPS 版本及 DPI 环境仍需实际验证。
参数是窗体或控件对象
comDsoFramerObject.BeforeDocumentClosed = function(document,cancel){
/*当文档关闭前触发,
返回 true 取消关闭*/
}
comDsoFramerObject.BeforeDocumentSaved = function(document,location,cancel){
/*当文档保存前触发,
返回 true 取消保存*/
}
插入文件到当前位置,
如果文件是图像,请将参数@2指定为true
插入文件到头部,
如果文件是图像,请将参数@2指定为true
插入文件到尾部,
如果文件是图像,请将参数@2指定为true
comDsoFramerObject.OnDocActivated = function(isActivated){
/*当组件激活或取消激活时触发*/
}
comDsoFramerObject.OnDocumentClosed = function(){
/*当文档关闭时调用*/
}
comDsoFramerObject.OnDocumentOpened = function( path, document){
/*新建或打开文档触发此事件*/
}
comDsoFramerObject.OnFileCommand = function(item,cancel){
/*用户选择菜单命令触发,
可通过返回 cancel 值为 true 取消命令*/
}
comDsoFramerObject.OnPPTBeforeRightClick = function(selection,isCancel){
/* */
}
comDsoFramerObject.OnPrintPreviewExit = function(){
/*打印预览关闭时触发*/
}
comDsoFramerObject.OnScreenModeChanged = function(isFullScreenMode){
/*用户选择菜单命令触发,
可通过返回 cancel 值为 true 取消命令*/
}
comDsoFramerObject.OnSheetBeforeDoubleClick = function(sheetName, row, col, cancel){
/* */
}
comDsoFramerObject.OnSheetBeforeRightClick = function(sheetName, row, col, cancel){
/* */
}
comDsoFramerObject.OnSheetChange = function(sheetName, row, col){
/* */
}
comDsoFramerObject.OnSheetselectionChange = function(sheetName,row, col){
/* */
}
comDsoFramerObject.OnWordBeforeDoubleClick = function(selection,isCancel){
/* */
}
comDsoFramerObject.OnWordBeforeRightClick = function(selection,isCancel){
/* */
}
comDsoFramerObject.OnWordWPSSelChange = function(selection){
/* */
}
获取发前活动文档可用的所有保存格式选项,
可用于 saveAs 函数的每 2 个参数,
可以通过activeDocument 获取格式选项,例如 activeDocument.ppSaveAsRTF
DsoFramer控件
当前活动文档类型名称,
可能的返回值: "PowerPoint","Excel","Word"
如果当前是无效的文档,返回 null
= 添加书签
背景颜色
边框颜色
边框样式,默认为 0(无边框),可选数值:
dsoBorderNone = 0
dsoBorderFlat = 1
dsoBorder3D = 2
dsoBorder3DThin = 3
关闭当前嵌入文档,支持 BeforeDocumentClosed 取消关闭事件
通过正常 OLE 关闭与释放,不强杀 Office/WPS 进程
创建新EXCEL文档
创建新WORD文档
删除书签
删除本地文件
文档名
前景颜色
定位书签
返回修证次数
返回修订详情
返回临时文件路径
控件窗口
文档窗口
是否修改
是否只读
模态状态
office版本
打开各种 office 文件,参数2为可选参数,
如果不指定参数@2,则根据后缀名自动设置,
打开文件后使用 activeDocument 属性操作文档对象
参数2为可选参数,
如果不指定参数@2,则根据后缀名自动设置,
打开文件后使用 activeDocument 属性操作文档对象
保护文档
保存当前文档。省略参数时原位保存;
指定文件路径时另存为目标文件(参数@2为true允许覆盖,Word自动按后缀名匹配.docx/.doc/.rtf等格式)
保存文档,
可用的格式选项使用 SaveAsTypes 函数查看,
可以通过activeDocument 获取格式选项,例如 activeDocument.ppSaveAsRTF
保存文档,见下面的常量列表
设置当前时间
设置文档变量,opt可使用二进制数值:
第一位为1: 表示update域关联的,
第二位为1: 表示如果没有这个变量则添加
插入文件
设置和创建书签
此函数用法建议查看一下源码,
参考其他几个调用这个函数的函数
插入图像
设置菜单
可以使用按位或的多个选项
分页保存
设置基本信息,
例如设置只读密码 setValue("password","::DOCPROP:PassWord")
设置修改密码 setValue("password","::DOCPROP:WritePW")
显示对话框,
@dlgType 指定对话框类型,数值:
dsoDialogNew = 0
dsoDialogOpen = 1
dsoDialogSave = 2
dsoDialogSaveCopy = 3
dsoDialogPrint = 4
dsoDialogPageSetup = 5
dsoDialogProperties = 6
大纲视图
标准视图
大纲视图
打印预览视图
打印视图
是否显示修订留痕
设置文档显示模式,
建议改用 showNormalView,showOutlineView 等函数
显示web视图
是否显示工具栏(Office/WPS 功能区),默认为 false
解保护文档
自动调整控件窗口大小
执行指定的动词命令
解析快捷键,
如果是快捷键返回真值
活动文档
Word 文档对象 https://docs.microsoft.com/en-us/office/vba/api/word.document
Excel 文档对象 https://docs.microsoft.com/en-us/office/vba/api/excel.workbook
PowerPoint 文档对象 https://docs.microsoft.com/en-us/office/vba/api/powerpoint.presentation
当前文档对象
活动 Excel 表格
返回 Excel 指定名称的图表
返回 Excel 指定名称的对话框工作表
返回 Excel 工作簿上的指定工作表
设置 Excel 主题
设置 Excel 标题
返回 Excel 指定名称的工作表
关闭 Excel 工作簿
Excel 表格名称计数
Excel 工作表总数
返回指定的 Excel 工作表
全屏播放 PPT
_MNU_CLOSE=4
_MNU_NEW=1
_MNU_OPEN=2
_MNU_PGSETUP=0x64
_MNU_PRINT=0x256
_MNU_PRINTPV=0x126
_MNU_PROPS=0x32
_MNU_SAVE=8
_MNU_SAVEAS=0x16
_dsoBorder3D=2
_dsoBorder3DThin=3
_dsoBorderFlat=1
_ppSaveAsAddIn=8
_ppSaveAsBMP=0x13
_ppSaveAsDefault=0xB
_ppSaveAsGIF=0x10
_ppSaveAsHTML=0xC
_ppSaveAsHTMLDual=0xE
_ppSaveAsHTMLv3=0xD
_ppSaveAsJPG=0x11
_ppSaveAsMetaFile=0xF
_ppSaveAsPNG=0x12
_ppSaveAsPowerPoint3=4
_ppSaveAsPowerPoint4=3
_ppSaveAsPowerPoint4FarEast=0xA
_ppSaveAsPowerPoint7=2
_ppSaveAsPresentation=1
_ppSaveAsRTF=6
_ppSaveAsShow=7
_ppSaveAsTemplate=5
_wdAllowOnlyComments=1
_wdAllowOnlyFormFields=2
_wdAllowOnlyRevisions=0
_wdFormatDOSText=4
_wdFormatDOSTextLineBreaks=5
_wdFormatDocument=0
_wdFormatEncodedText=7
_wdFormatHTML=8
_wdFormatRTF=6
_wdFormatTemplate=1
_wdFormatText=2
_wdFormatTextLineBreaks=3
_wdFormatUnicodeText=7
_wdMasterView=5
_wdNoProtection=-1
_wdNormalView=1
_wdOutlineView=2
_wdPrintPreview=4
_wdPrintView=3
_wdWebView=6
_xlAddIn=0x12
_xlCSV=6
_xlCSVMSDOS=0x18
_xlCSVMac=0x16
_xlCSVWindows=0x17
_xlCurrentPlatformText=-4158
_xlDBF2=7
_xlDBF3=8
_xlDBF4=0xB
_xlDIF=9
_xlExcel2=0x10
_xlExcel2FarEast=0x1B
_xlExcel3=0x1D
_xlExcel4=0x21
_xlExcel4Workbook=0x23
_xlExcel5=0x27
_xlExcel7=0x27
_xlExcel9795=0x2B
_xlHtml=0x2C
_xlIntlAddIn=0x1A
_xlIntlMacro=0x19
_xlSYLK=2
_xlTemplate=0x11
_xlTextMSDOS=0x15
_xlTextMac=0x13
_xlTextPrinter=0x24
_xlTextWindows=0x14
_xlUnicodeText=0x2A
_xlWJ2WD1=0xE
_xlWJ3=0x28
_xlWJ3FJ3=0x29
_xlWK1=5
_xlWK1ALL=0x1F
_xlWK1FMT=0x1E
_xlWK3=0xF
_xlWK3FM3=0x20
_xlWK4=0x26
_xlWKS=4
_xlWQ1=0x22
_xlWorkbookNormal=-4143
_xlWorks2FarEast=0x1C