PB OLE控制EXCEL的全面认识
利用Excel进行数据表的权限控制和保护

利用Excel进行数据表的权限控制和保护在进行数据处理和管理工作时,我们经常需要对Excel数据表进行权限控制和保护。
Excel提供了一些功能,可以帮助我们确保数据的安全性并限制用户对数据表的访问和修改。
本文将介绍如何利用Excel进行数据表的权限控制和保护。
1. 设置工作表密码首先,我们可以为Excel工作表设置密码,以限制用户对工作表的访问。
打开Excel文件后,选择需要保护的工作表,然后点击“工具”菜单中的“保护”选项,再选择“工作表”选项。
在弹出的对话框中,输入所需的密码并确认。
设置密码后,只有输入正确密码的人才能打开和编辑该工作表。
2. 限制单元格的编辑权限除了整个工作表的保护,我们还可以对单元格进行权限控制,以限制用户对特定单元格的编辑。
选中需要限制权限的单元格或区域,然后点击“格式”菜单中的“单元格”选项。
在弹出的对话框中,切换到“保护”标签页,并勾选“锁定”选项。
然后,点击“工具”菜单中的“保护”选项,再选择“工作表”选项来保护工作表。
此时,已设置为锁定的单元格将无法编辑。
3. 分配不同的用户权限如果需要给不同的用户分配不同的权限,我们可以利用Excel的“保护工作表”功能。
选择需要分配权限的工作表后,点击“工具”菜单中的“保护”选项,然后选择“保护工作表”。
在弹出的对话框中,可以设置不同的选项来控制用户对工作表的权限,例如允许用户进行筛选、排序、插入或删除行列等操作。
4. 隐藏和保护公式当涉及到包含敏感数据的公式时,我们可能需要隐藏和保护这些公式,以确保数据的安全性。
选中包含公式的单元格或区域后,点击“格式”菜单中的“单元格”选项,在弹出的对话框中切换到“保护”标签页,并取消勾选“锁定”选项。
然后,点击“工具”菜单中的“保护”选项,再选择“工作表”选项来保护工作表。
5. 导出和共享受保护的数据表在完成数据表的权限控制和保护后,我们可以选择将受保护的数据表导出或共享给其他人。
点击“文件”菜单中的“另存为”选项,在弹出的对话框中选择保存的位置和文件格式,然后点击“保存”。
PB操作Excel文件

PB调用EXCEL的操作不失为一种好的报表输出方式2009-05-15 23:17 928人阅读评论(0) 收藏举报对于较为中国化的报表,虽然后dw这个坚强后盾,但是也难不住繁复疲劳的应对。
不过我们可以知道,数据的输出,都是居于table的栏位或者计算字段。
只是很多统计的模式和展现模式不同。
我在一年前作完一个系统,可是客户几乎隔三差五有新的东东要输出报表。
终于我发现。
让客户先在excel里弄好,然后再写程序来输出也是一个不错的方法。
关键是,客户给的东西不必要再进自己的系统,所以数据不会发生什么问题。
如果本身软件有任何问题,那能从excel里的写的结果很容易看得出来。
虽然写excel表格要花很多时间,但是减少了输入导入和输出的一些麻烦。
转载excel操作大全:powerbuilder操作excel命令大全(例子的有些地方不对!)2006-12-04 16:431.创建Excel对象eole=CREATEOBJEC T(′Excel.application′)2.添加新工作簿eole.Workbooks.add3.设置第3个工作表为激活工作表eole.Worksheets(″sheet3″).Activate4.打开指定工作簿eole.Workbooks.Open(″c:/temp/ll.xls″)5.显示Excel窗口eole.visible=.t.6.更改Excel标题栏eole.Caption=″VFP应用程序调用Microsoft Excel″7.给单元格赋值eole.cells(1,4).value=XM(XM为数据库字段名)8.设置指定列的宽度(单位:字符个数)eole.ActiveSheet.Columns(1).ColumnWidth=59.设置指定行的高度(单位:磅)eole.ActiveSheet.Rows(1).RowHeight=1/0.035(设定行高为1厘米,1磅=0.035厘米)10.在第18行之前插入分页符eole.Worksheets(″Sheet1″).Rows(18).P ageBreak=111.在第4列之前删除分页符eole.ActiveSheet.Columns(4).PageBreak=012.指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=313.设置四个边框线条的类型eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)14.设置页眉eole.ActiveSheet.PageSetup.CenterHeader=″报表1″15.设置页脚eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″16.设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.HeaderMargin=2/0.03517.设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.03518.设置顶边距为2厘米eole.ActiveSheet.PageSetup.TopMargin=2/0.035 19.设置底边距为4厘米eole.ActiveSheet.PageSetup.BottomMargin=4/0.035 20.设置左边距为2厘米veole.ActiveSheet.PageSetup.LeftMargin=2/0.035 21.设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.035 22.设置页面水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.t. 23.设置页面垂直居中eole.ActiveSheet.PageSetup.CenterVertically=.t. 24.设置页面纸张大小(1-窄行8 5 11 39-宽行14 11) eole.ActiveSheet.PageSetup.PaperSize=125.打印单元格网线eole.ActiveSheet.PageSetup.PrintGridlines=.t.26.拷贝整个工作表edRange.Copy27.拷贝指定区域eole.ActiveSheet.Range(″A1:E2″).Copy28.粘贴eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial 29.在第2行之前插入一行eole.ActiveSheet.Rows(2).Insert30.在第2列之前插入一列eole.ActiveSheet.Columns(2).Insert31.设置字体eole.ActiveSheet.Cells(2,1)=″黑体″32.设置字体大小eole.ActiveSheet.Cells(1,1).Font.Size=25 33.设置字体为斜体eole.ActiveSheet.Cells(1,1).Font.Italic=.t. 34.设置整列字体为粗体eole.ActiveSheet.Columns(1).Font.Bold=.t. 35.清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents 36.打印预览工作表eole.ActiveSheet.PrintPreview37.打印输出工作表eole.ActiveSheet.PrintOut38.工作表另为eole.ActiveWorkbook.SaveAs(″c:/temp/22.xls″) 39.放弃存盘eole.ActiveWorkbook.saved=.t.40.关闭工作簿eole.Workbooks.close41.退出Exceleole.quit42 合并string worksheet,beginRowcol,EndRowColMyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":" EndRowCol).Select MyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":" EndRowCol).Merge43 sheet改名MyOLE.ActiveWorkBook.Sheets(olename).selectMyOLE.ActiveWorkBook.Sheets(olename).name=newnameMyOLE=Create OLEObjectConnectErr=MyOLE.ConnectToNewObject ("excel.Application")MyOLE.visible=false//打开指定的XLS文件激活workbooksMyOLE.application.workbooks.Open (FilePath)//对XLS文件进行了改动以后,在关闭该文件时是否需要向用户提出警告。
PB对excel的操作

Pb中对Excel文件的应用Oleobject ole_object//建立OLE对象ole_object=create oleobject//创建对象integer li_retli_ret=ole_object.connecttoobject( " ", "Excel.Application ")//建立连接if li_ret <> 0 then//如果Excel还没有打开,则新建。
li_ret=ole_object.ConnectToNewObject( "Excel.Application ")if li_ret <> 0thenmessagebox( "OLE错误", "OLE无法连接!错误号:"+string(li_ret))returnend ifole_object.Visible=trueend ifpointer oldpointer//设置鼠标oldpointer=setpointer(HourGlass!)ole_object.Workbooks.Add//新建工作薄ole_object.Application.DisplayAlerts=False//关闭警告消息对话框,防止提示ole_object.Application.Workbooks.Open(as_exccccccccccccccccccccccccccccccccccel_filename)/ /打开Excel文件//ole_object.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158)//把打开的Excel文件另存为//Text文件,第二参数表示数据以制表符TAB分隔ole_object.Application.Quit()//退出Excelole_object.activeworkbook.saved=true//放弃存盘ole_object.workbooks.close//关闭工作簿ole_object.Cells(1,1).Value=reptitleole_object.Range( 'A1 ').Selectole_object.Selection.Font.Size=24ole_object.selection.HorizontalAlignment=3//水平对齐方式:ole_object.Range( 'A1: '+f_columname(ll_colnum)+ '1 ').Selectole_object.Range( 'A1: '+f_columname(ll_colnum)+ '1 ').Mergeole_object.Columns(i).ColumnWidth=ld_widthole_object.Columns(i).HorizontalAlignment=3ole_object.Columns(i).Borders.LineStyle=1ole_object.Columns(i).Font.Bold=Trueole_object.cells(i,j).NumberFormat= "@ "ole_object.cells(i,j).Font.Bold=falseole_object.cells(i,j).value=ls_valueOLE_edRange.Rows.CountSheets.Add基本操作:Ole_object.Workbooks.add//新建一个Excel文件Ole_object.Workbooks.Open( "FileName ")//打开一个已存在Excel文件Ole_object.ActiveWorkBook.Sheets( "SheetName ").Select//选择文件中一个工作表Ole_object.Application.Run( "MacroName ")//运行宏Ole_object.Application.Visible=TRUE//Excel文件可见Ole_object.Application.ScreenUpdating=true//设置可见属性②格式设置Ole_object.ActiveSheet.Columns( "A:U ").AutoFit//列宽自动调整Ole_object.ActiveSheet.Columns( "A:Z ").ColumnWidth=6.75//列宽Ole_object.ActiveSheet.Rows( "1:100 ").RowHeight=12//行高Ole_object.Application.StandardFont= "ArialNarrow ";//设置字体Ole_object.Application.StandardFontSize= "8 "//设置字号Ole_object.ActiveSheet.Font.Size= "8 "//设置字号Ole_object.ActiveSheet.Font.Bold=True//粗体Ole_object.ActiveSheet.Font.Italic=True//斜体Ole_object.ActiveSheet.Font.Underline=True//下划线Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上Ole_object.ActiveSheet.cells(2,1).f =‟黑体‟//设置字体Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小③工作区域操作:Ole_object.ActiveSheet.Range( "A1:Z10 ").Property=value//设置一个工作区域内的属性值Ole_object.ActiveSheet.Range( "A1:Z10 ").Merge//合并单元格Ole_object.ActiveSheet.Range( "A1:Z10 ").WrapText=False//自动换行禁止Ole_object.ActiveSheet.Range( "A1:Z10 ").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操作)//i_val:0无边界线;然后1,2,3。
PB的OLE编程

PB的OLE编程技术OLE,全称Object Linking and Embedding,即对象链接和嵌入技术,是Windows系统中允许应用程序共享数据和程序功能的一种标准的便利方法。
在PowerBuilder中,在窗口画板上,可以放置OLE控件,把Windows系统内注册的OLE 对象嵌入到界面中,该控件是被嵌入的对象的容器,用户能激活该OLE对象,调出产生它的原始服务程序,可视化编辑修改。
也能用编程的方法,在内存中创建对象,连接到服务程序,调用相应功能,设置对象的各种属性。
这种方法不可视地操作对象,发送命令,并不需要在窗口中放置一个OLE控制,叫做“OLE自动化”。
在这种情况下,还可以设置服务程序的可视属性为“True”,让服务程序显示在用户面前。
在PowerBuilder中,OLEObject对象类型是专门用于“OLE自动化”的。
OLEObject是个动态对象类型,这意味着编译器会接受这个对象的任何属性、方法和参数列表,PowerBuilder不知道你调用的属性和方法是否有效,而是把它留给服务程序自己去判断,如果确实没有,就会在运行的时候报错。
使用OLEObject对象变量编程,少不了如下四步:1.声明变量,创建对象OLEObject myoleobjectmyoleobject = CREATE OLEObject2.连接到某个具体的OLE对象myoleobject.ConnectToObject … 或者myo leobject.ConnectToNewObject …3.利用OLE服务器的属性和方法操作该对象myoleobject.property = … /* 属性 */myoleobject.function(…) /* 方法 */4.断开和OLE对象的连接,销毁对象,释放内存。
myoleobject.Quit()myoleobject.DisconnectObject()Destroy myoleobject这种用编程的方法操作OLE对象,应用非常普遍。
PB中操作Excel的技巧集

PB中操作Excel的技巧集eole=CREATEOBJECT("Excel.application")2.添加新工作簿eole.Workbooks.add3.设置第3个工作表为激活工作表eole.Worksheets("sheet3").Activate4.打开指定工作簿eole.Workbooks.Open("c:\temp\ll.xls")5.显示Excel窗口eole.visible=True6.更改Excel标题栏eole.Caption=″VFP应用程序调用Microsoft Excel″7.给单元格赋值eole.cells(1,4).value=XM(XM为数据库字段名)8.设置指定列的宽度(单位:字符个数)eole.ActiveSheet.Columns(1).ColumnWidth=59.设置指定行的高度(单位:磅)eole.ActiveSheet.Rows(1).RowHeight=1/0.035 (设定行高为1厘米,1磅=0.035厘米)10.在第18行之前插入分页符e ole.Worksheets(″Sheet1″).Rows(18).PageBreak=111.在第4列之前删除分页符eole.ActiveSheet.Columns(4).PageBreak=012.指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=313.设置四个边框线条的类型eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)14.设置页眉eole.ActiveSheet.PageSetup.CenterHeader=″报表1″15.设置页脚eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″16.设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.HeaderMargin=2/0.03517.设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.03518.设置顶边距为2厘米eole.ActiveSheet.PageSetup.TopMargin=2/0.03519.设置底边距为4厘米eole.ActiveSheet.PageSetup.BottomMargin=4/0.03520.设置左边距为2厘米eole.ActiveSheet.PageSetup.LeftMargin=2/0.03521.设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.03522.设置页面水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=True23.设置页面垂直居中eole.ActiveSheet.PageSetup.CenterVertically=True24.设置页面纸张大小(1-窄行8 5 11 39-宽行14 11)eole.ActiveSheet.PageSetup.PaperSize=125.打印单元格网线eole.ActiveSheet.PageSetup.PrintGridlines=True26.拷贝整个工作表edRange.Copy27.拷贝指定区域eole.ActiveSheet.Range(″A1:E2″).Copy28.粘贴eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial29.在第2行之前插入一行eole.ActiveSheet.Rows(2).Insert30.在第2列之前插入一列eole.ActiveSheet.Columns(2).Insert31.设置字体eole.ActiveSheet.Cells(2,1)=″黑体″32.设置字体大小eole.ActiveSheet.Cells(1,1).Font.Size=2533.设置字体为斜体eole.ActiveSheet.Cells(1,1).Font.Italic=True34.设置整列字体为粗体eole.ActiveSheet.Columns(1).Font.Bold=True35.清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents36.打印预览工作表方法一:eole.ActiveSheet.PrintPreview方法二:eole.ExecuteExcel4Macro("PRINT(1,,,1,,TRUE,,,,,,1,,,TRUE,,FALSE)") 37.打印输出工作表方法一:eole.ActiveSheet.PrintOut方法二:eole.ExecuteExcel4Macro("PRINT(1,,,1,,,,,,,,1,,,TRUE,,FALSE)") 38.工作表另为eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)39.放弃存盘eole.ActiveWorkbook.saved=True40.关闭工作簿eole.Workbooks.close41.退出Exceleole.quit42. 合并string worksheet, beginRowcol, EndRowColMyOLE.ActiveWorkBook.Sheets(worksheet).Range( BeginRowCol+": "+EndRowCol).SelectMyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol+":"+ EndRowCol).Merge43. sheet改名MyOLE.ActiveWorkBook.Sheets(olename).selectMyOLE.ActiveWorkBook.Sheets(olename).name=newname44. 举例MyOLE=Create OLEObjectConnectErr = MyOLE.ConnectToNewObject ("excel.Application") MyOLE.visible=false//打开指定的XLS文件激活workbooksMyOLE.application.workbooks.Open (FilePath)//对XLS文件进行了改动以后,在关闭该文件时是否需要向用户提出警告。
在PowerBuilder中通过OLE实现复杂的Excel报表

[ ywo d ] o e B i e ; h E T e x e rp r A tmai c n lg Ke r s P w r u d r T e l OL ; h c le ot uo t nt h oo y E ; o e
0 引 言
在 很 多 情 况 下 , 件 开 发 人 员 设 计 数 据 库 应 用 系统 时 , 软 免 不 了要 求 系 统 自动 且 快 速 生 成 大 量 相 关 报 表 , 常 采 用 的 技 术 通 是 使 用 Auo d软 件 , 多个 表格 批 量 生 成 到 一 个 C tCa 将 AD 图 形
软件 2 t 0 2年第 3 卷 第 5期 3
S F WAR 0T E
国际 I T传媒品牌
在P w r ule 中通 过O E o eB i r d L 实现 复杂 的E c l ̄ x e: 表 J : l
王 兰 春
( 州 师范学 院计 算机 科学 与技 术 系 山西 忻州 0 40 ) 忻 3 00
t eE c l e o t h o g h x e p r t r u h OLE . E c n e to n x e o r l e . eVB l n u g o wr e E c l a a a d g n r t n E c l r OL o n c i n a d E c l n P we Bu i r Us A g a et i x e t , n e e a ea x e i d a t d i e t r g , rmi g a d meh d o e ai n fl so a e p i n n t o f p rto . o
合 少 量 报 表 生 成 并输 出情 况 的 可 行 方 法 。
PB控制EXCEL的全面认识要点

PB OLE控制EXCEL的全面认识 1.创建Excel对象eole=CREATEOBJECT(′Excel.application′ 2.添加新工作簿eole.Workbooks.add 3.设置第3个工作表为激活工作表eole.Worksheets(″sheet3″.Activate 4.打开指定工作簿eole.Workbooks.Open(″c:\temp\ll.xls″ 5.显示Excel窗口eole.visible=.t. 6.更改Excel标题栏eole.Caption=″VFP应用程序调用Microsoft Excel″ 7.给单元格赋值eole.cells(1,4.value=XM(XM为数据库字段名 8.设置指定列的宽度(单位:字符个数eole.ActiveSheet.Columns(1.ColumnWidth=5 9.设置指定行的高度(单位:磅eole.ActiveSheet.Rows(1.RowHeight=1/0.035 (设定行高为1厘米,1磅=0.035厘米 10.在第18行之前插入分页符eole.Worksheets(″Sheet1″.Rows(18.PageBreak=1 11.在第4列之前删除分页符eole.ActiveSheet.Columns(4.PageBreak=0 12.指定边框线宽度(Borders参数如下ole.ActiveSheet.Range(″b3:d3″.Borders(2.Weight=3 13.设置四个边框线条的类型eole.ActiveSheet.Range(″b3:d3″.Borders(2.LineStyle=1 (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线 14.设置页眉eole.ActiveSheet.PageSetup.CenterHeader=″报表1″ 15.设置页脚eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″ 16.设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035 17.设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.03518.设置顶边距为2厘米eole.ActiveSheet.PageSetup.TopMargin=2/0.035 19.设置底边距为4厘米eole.ActiveSheet.PageSetup.BottomMargin=4/0.035 20.设置左边距为2厘米veole.ActiveSheet.PageSetup.LeftMargin=2/0.035 21.设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.035 22.设置页面水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.t. 23.设置页面垂直居中eole.ActiveSheet.PageSetup.CenterVertically=.t.24.设置页面纸张大小(1-窄行-宽行eole.ActiveSheet.PageSetup.PaperSize=1 25.打印单元格网线eole.ActiveSheet.PageSetup.PrintGridlines=.t. 26.拷贝整个工作表edRange.Copy 27.拷贝指定区域eole.ActiveSheet.Range(″A1:E2″.Copy 28.粘贴eole.WorkSheet(″Sheet2″.Range(″A1″.Pa steSpecial 29.在第2行之前插入一行eole.ActiveSheet.Rows(2.Insert 30.在第2列之前插入一列eole.ActiveSheet.Columns(2.Insert 31.设置字体eole.ActiveSheet.Cells(2,=″黑体″ 32.设置字体大小eole.ActiveSheet.Cells(1,1.Font.Size=25 33.设置字体为斜体eole.ActiveSheet.Cells(1,1.Font.Italic=.t. 34.设置整列字体为粗体eole.ActiveSheet.Columns(1.Font.Bold=.t. 35.清除单元格公式eole.ActiveSheet.Cells(1,4.ClearContents 36.打印预览工作表eole.ActiveSheet.PrintPreview 37.打印输出工作表eole.ActiveSheet.PrintOut 38.工作表另为eole.Acti veWorkbook.SaveAs(″c:\temp\22.xls″ 39.放弃存盘eole.ActiveWorkbook.saved=.t. 40.关闭工作簿eole.Workbooks.close 41.退出Excel eole.quit 42 合并 string worksheet,beginRowcol,EndRowCol MyOLE.ActiveWorkBook.Sheets(worksheet.Range(BeginRowCol+":"+EndRowCol.Sele ctMyOLE.ActiveWorkBook.Sheets(worksheet.Range(BeginRowCol+":"+EndRowCol.Mer ge 43 sheet改名 MyOLE.ActiveWorkBook.Sheets(olename.selectMyOLE.ActiveWorkBook.Sheets(=newname MyOLE=Create OLEObject ConnectErr=MyOLE.ConnectToNewObject ("excel.Application" MyOLE.visible=false //打开指定的XLS文件激活workbooks MyOLE.application.workbooks.Open (FilePath //对XLS文件进行了改动以后,在关闭该文件时是否需要向用户提出警告。
PB的OLE编程

PB的OLE编程技术OLE,全称Object Linking and Embedding,即对象链接和嵌入技术,是Windows系统中允许应用程序共享数据和程序功能的一种标准的便利方法。
在PowerBuilder中,在窗口画板上,可以放置OLE控件,把Windows系统内注册的OLE 对象嵌入到界面中,该控件是被嵌入的对象的容器,用户能激活该OLE对象,调出产生它的原始服务程序,可视化编辑修改。
也能用编程的方法,在内存中创建对象,连接到服务程序,调用相应功能,设置对象的各种属性。
这种方法不可视地操作对象,发送命令,并不需要在窗口中放置一个OLE控制,叫做“OLE自动化”。
在这种情况下,还可以设置服务程序的可视属性为“True”,让服务程序显示在用户面前。
在PowerBuilder中,OLEObject对象类型是专门用于“OLE自动化”的。
OLEObject是个动态对象类型,这意味着编译器会接受这个对象的任何属性、方法和参数列表,PowerBuilder不知道你调用的属性和方法是否有效,而是把它留给服务程序自己去判断,如果确实没有,就会在运行的时候报错。
使用OLEObject对象变量编程,少不了如下四步:1.声明变量,创建对象OLEObject myoleobjectmyoleobject = CREATE OLEObject2.连接到某个具体的OLE对象myoleobject.ConnectToObject … 或者myo leobject.ConnectToNewObject …3.利用OLE服务器的属性和方法操作该对象myoleobject.property = … /* 属性 */myoleobject.function(…) /* 方法 */4.断开和OLE对象的连接,销毁对象,释放内存。
myoleobject.Quit()myoleobject.DisconnectObject()Destroy myoleobject这种用编程的方法操作OLE对象,应用非常普遍。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PB OLE控制EXCEL的全面认识
分类:编程知识1〃创建Excel对象
eole=CREATEOBJECT(′Excel.application′)
2〃添加新工作簿
eole.Workbooks.add
3〃设置第3个工作表为激活工作表
eole.Worksheets(″sheet3″).Activate
4〃打开指定工作簿
eole.Workbook s.Open(″c:\temp\ll.xls″)
5〃显示Excel窗口
eole.visible=.t.
6〃更改Excel标题栏
eole.Caption=″VFP应用程序调用Microsoft Excel″
7〃给单元格赋值
eole.cells(1,4).value=XM(XM为数据库字段名)
8〃设置指定列的宽度(单位:字符个数)
eole.ActiveSheet.Columns(1).ColumnWidth=5
9〃设置指定行的高度(单位:磅)
eole.ActiveSheet.Rows(1).RowHeight=1/0.035
(设定行高为1厘米,1磅=0.035厘米)
10〃在第18行之前插入分页符
eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1
11〃在第4列之前删除分页符
eole.ActiveSheet.Columns(4).PageBreak=0
12〃指定边框线宽度(Borders参数如下)
ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3
13〃设置四个边框线条的类型
eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1
(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle 值:1与7-细实、2-细虚、4-点虚、9-双细实线)
14〃设置页眉
eole.ActiveSheet.PageSetup.CenterHeader=″报表1″
15〃设置页脚
eole.ActiveSheet.PageSetu p.CenterFooter=″第&P页″
16〃设置页眉到顶端边距为2厘米
eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035
17〃设置页脚到底边距为3厘米
eole.ActiveSheet.PageSetup.FooterMargin=3/0.035
18〃设置顶边距为2厘米
eole.ActiveSheet.PageSetup.TopMargin=2/0.035
19〃设置底边距为4厘米
eole.ActiveSheet.PageSetup.BottomMargin=4/0.035
20〃设置左边距为2厘米
veole.ActiveSheet.PageSetup.LeftMargin=2/0.035
21〃设置右边距为2厘米
eole.ActiveSheet.PageSetup.RightMargin=2/0.035
22〃设置页面水平居中
eole.ActiveSheet.PageSetup.CenterHorizontally=.t.
23〃设置页面垂直居中
eole.ActiveSheet.PageSetup.CenterVertically=.t. 24〃设置页面纸张大小(1-窄行8 5 11 39-宽行14 11) eole.ActiveSheet.PageSetup.PaperSize=1
25〃打印单元格网线
eole.ActiveSheet.PageSetup.PrintGridlines=.t.
26〃拷贝整个工作表
edRange.Copy
27〃拷贝指定区域
eole.ActiveSheet.Range(″A1:E2″).Copy
28〃粘贴
eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial
29〃在第2行之前插入一行
eole.ActiveSheet.Rows(2).Insert
30〃在第2列之前插入一列
eole.ActiveSheet.Columns(2).Insert
31〃设置字体
eole.ActiveSheet.Cells(2,1)=″黑体″
32〃设置字体大小
eole.ActiveSheet.Cells(1,1).Font.Size=25
33〃设置字体为斜体
eole.ActiveSheet.Cells(1,1).Font.Italic=.t.
34〃设置整列字体为粗体
eole.ActiveSheet.Columns(1).Font.Bold=.t.
35〃清除单元格公式
eole.ActiveSheet.Cells(1,4).ClearContents
36〃打印预览工作表
eole.ActiveSheet.PrintPreview
37〃打印输出工作表
eole.ActiveSheet.PrintOut
38〃工作表另为
eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)
39〃放弃存盘
eole.ActiveWorkbook.saved=.t.
40〃关闭工作簿
eole.Workbooks.close
41〃退出Excel
eole.quit
42 合并
string worksheet,beginRowcol,EndRowCol
MyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":"
EndRowCol).Select
MyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":"
EndRowCol).Merge
43 sheet改名
MyOLE.ActiveWorkBook.Sheets(olename).select MyOLE.ActiveWorkBook.Sheets(olename).name=newname
MyOLE=Create OLEObject
ConnectErr=MyOLE.ConnectToNewObject ("excel.Application")
MyOLE.visible=false
//打开指定的XLS文件激活workbooks
MyOLE.application.workbooks.Open (FilePath)
//对XLS文件进行了改动以后,在关闭该文件时是否需要向用户提出警告。
MyOLE.Application.DisplayAlerts = False
if isnull(MyOLE) then return -1 ;
if ConnectErr <0 then
choose case ConnectErr
case -1
messagebox('错误提示','无效的调用')
case -2
messagebox('错误提示','类名没发现')
case -3
messagebox('错误提示','对象不能创建')
case -4
messagebox('错误提示','文件不能连接')
case -5
messagebox('错误提示','不能连接现在的对象')
case -6
messagebox('错误提示','文件无效')
case -7
messagebox("错误提示","文件不存在或已经打开")
case -8
messagebox("错误提示","服务器不能装载选择的文件")
case -9
messagebox("错误提示","其他错误")
end choose
return -1
end if
PB控制也一样的的.。