aardio 文档
aardio 范例:嵌入Office文档
//嵌入Office文档
/*
DsoFramer 是微软开源的控件用于嵌入 Word、 Excel、 PPT 文档,
这个控件是开源的,一般还是够用的。并且这个扩展库已经实现了免注册调用,支持生成独立EXE文件。
而且这个控件的体积非常小。
但是要注意微软已经不维护这个控件了,
如果你还有更多的改进想法,可自行到网上下载 DsoFramer 源码并进行改进。
*/
import win.ui;
/*DSG{{*/
mainForm = win.form(text="dsoFrame控件测试";right=1191;bottom=769;bgcolor=16448250)
mainForm.add(
btnExcel={cls="button";text="创建表格";left=40;top=710;right=162;bottom=755;db=1;dl=1;z=2};
button={cls="button";text="打开文档、表格、或幻灯片";left=187;top=711;right=384;bottom=756;db=1;dl=1;z=6};
chkMenubar={cls="checkbox";text="显示菜单栏";left=613;top=721;right=716;bottom=748;bgcolor=16448250;z=3};
chkTitlebar={cls="checkbox";text="显示标题栏";left=930;top=721;right=1033;bottom=748;bgcolor=16448250;z=5};
chkToolbars={cls="checkbox";text="显示工具条";left=771;top=721;right=874;bottom=748;bgcolor=16448250;z=4};
custom={cls="custom";text="自定义控件";left=0;top=7;right=1186;bottom=690;bgcolor=16777215;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/
mainForm.show(0x3/*_SW_MAXIMIZE*/);
import com.dsoFramer;
var dsoFrame = com.dsoFramer(mainForm.custom)
dsoFrame.menubar = false //去掉菜单栏
dsoFrame.titlebar = false; //去掉标题栏
dsoFrame.toolbars = false; //去掉工具条
dsoFrame.borderStyle = 0; //去掉边框(默认值)
//新建或打开文档触发此事件
dsoFrame.OnDocumentOpened = function( path, document){
mainForm.text = #path ? path : "新文档"
}
mainForm.btnExcel.oncommand = function(id,event){
dsoFrame.createNewExcel();
dsoFrame.activeDocument.Sheets(1).Cells(1,1).Value2 = "测试一下";
//监听文档事件
com.Connect(dsoFrame.activeDocument,{
SheetSelectionChange = function(sheet,targetRange){
};
SheetBeforeDoubleClick = function(sheet,targetRange,Cancel){
};
SheetChange = function(sheet,targetRange){
//https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.sheetchange
mainForm.text = "修改了:"+ targetRange.getValue2();
};
})
}
mainForm.chkMenubar.oncommand = function(id,event){
dsoFrame.menubar = mainForm.chkMenubar.checked;
}
mainForm.chkToolbars.oncommand = function(id,event){
dsoFrame.toolbars = mainForm.chkToolbars.checked;
}
mainForm.chkTitlebar.oncommand = function(id,event){
dsoFrame.titlebar = mainForm.chkTitlebar.checked;
}
import fsys.dlg;
mainForm.button.oncommand = function(id,event){
var path = fsys.dlg.open("Word 文档|*.doc;*.docx|Excel 表格|*.xls;*.xlsx|演示文稿|*.ppt;*.pptx||","打开 Office 文档");
if(path) {
dsoFrame.openFile(path);
//如果打开的是 PPT
if(dsoFrame.activeDocumentTypeName() == "PowerPoint"){
//自动全屏播放
dsoFrame.activeDocument.SlideShowSettings.Run();
}
}
}
/*
dsoFrame.activeDocument 的用法:
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
*/
return win.loopMessage();
Markdown 格式