pb中操作excel表格函数

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).font.name='黑体'//设置字体
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。。。依次边界线加粗
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1 //1与7-细实、2-细虚、4-点虚、9-双细实线
④赋值操作
Ole_object.ActiveSheet.range("A1:Z10").Cells.value="姓名"
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=1
Ole_object.ActiveSheet.range("A1:Z10").Cells.value="2003-01-01"
Ole_object.ActiveSheet.Range("A1:Z10").Cells(1,2).value="年龄"//区域内一个单元格的赋值
Ole_object.ActiveSheet.Range("A1:Z1").Cells(1,1).value="SUM(RC[-9]:RC[-1])"

---------------------------------------------------------

ls_filename = "C:/alt_report/wf_alt_report.xls"
if FileExists(ls_filename) then FileDelete(ls_filename)
OleObject Loo_Excel
Loo_Excel=create oleobject
if Loo_Excel.ConnectToNewObject("Excel.Application") <> 0 then
messagebox('提示','系統未安裝Excel,無法運行此操作!')
return
end if
Loo_Excel.Application.Workbooks.Add()
Loo_Excel.Application.Workbooks(1).worksheets(1)
Loo_Excel.Application.Visible = True
Loo_Excel.Application.ScreenUpdating = false

http://wenku.baidu.com/view/41154fa6f524ccbff1218408.html


发信人: starsky (星星), 信区: Programming
标  题: 利用PB数据窗口特征制作进度条
发信站: 烟雨漓江 (Wed Mar  8 10:15:11 2000), 转信

利用PB数据窗口特征制作进度条 

  PowerBuilder的6.5以前版本没有提供进度条,因此大多数程序员总是自己在程序中
利用两个statictext控件进行编程产生进度效果。但是由于包括statictext控件在内的
所有窗口内使用的控件没有透明色即transparent,进度条的文字显示无法与进度条进行
重叠,只得在进度条外的其它位置放置一statictext控件用以显示进度情况,这样即浪
费了空间,又不美观。
  但我们知道,数据窗口内的静态文本的字体属性是有transparent(透明)的,笔者通
过研究PowerBuilder的数据窗口控件特征,摸索出一利用数据窗口等制作进度条的方法
,充分解决了以上难题,还能任意改变宽度及背景、伸缩块及文字的颜色,并封装成了
用户对象以方便调用。下面就介绍这一方法。
  1、首先建立一数据源为Enternal(外部)、风格为Freefrom的数据窗口d_schedule_b
ar,输入一个字段。确定后在数据窗口画板中删除该字段,再增加两个statictext控件
,这样数据窗口加上字段标识的那个一共三个statictext控件,分别命名为:st_back、
st_move、st_text,调整使其宽、高度相等,设st_back的background.color为ButtonF
ace,st_move的background.color为Teal,st_text的background.color为transparent
,st_text的color为black。表述如下:

  控件名    背景色       文字色   x  y  高度  宽度
 St_back    ButtonFace    ----    5  8   76    969
 St_move    Teal          ----    5  8   76    969
 St_test    Transparent   black   5  8   76    969

  保存之前选择st_move,从Edit菜单中选择Bring to Front,再选择st_text重复上述
操作,使三个 statictext控件的位置层从外向里按st_text、st_move、st_back排序,
以防被显示屏蔽(这一点非常重要!)。
  2、新建一可视定制用户对象uo_ schedule_bar,以其中放置一数据窗口dw_1,数据
源为d_schedule_bar。定义两个int实例变量 ii_percent、ii_width。
  下面就开始骗程吧!
  (1)编写函数uf_setwidth(integer ai_width)
  参数及类型:integer ai_width
  作用:改变进度条宽度:
  返回值:无
  函数体:
IF ai_width > 0 THEN
 ii_width = ai_width
    dw_1.resize (ai_width + 15,dw_1.height)
    dw_1.modify ( "st_back.width=" + string(ai_width) )
    dw_1.modify ( "st_text.width=" + string(ai_width) )
 this.resize ( ai_width + 50, this.height )
END IF
  (2)编写函数uf_schedule_move(integer ai_schedule)
  参数及类型:integer ai_schedule
  作用:显示进度
  返回值:无
  函数体:
int li_AllWidth,li_schedule
IF ai_schedule > 100 THEN
  ai_schedule = 100
  ii_percent = 100
END IF
IF ai_schedule < 0 THEN
  ai_schedule = 0
END IF
ii_percent = ai_schedule
li_AllWidth = integer(dw_1.describe ( "st_back.width" ))
IF ai_schedule >= 0 THEN
  li_schedule = li_AllWidth * (ai_schedule / 100)
END IF
dw_1.modify ( "st_move.width=" + string(li_schedule) )
dw_1.modify ( "st_text.text='" + string (ai_schedule) + "%'" )
  (3)编写三个颜色控制函数以改变背景、伸缩条、文字的颜色。
  函数名:uf_change_back_color
  参数:double a_color
  函数体:
dw_1.modify ( "st_back.background.color = "+string(a_color))
  函数名:uf_change_move_bar_color
  参数:double a_color
  函数体:
dw_1.modify ( "st_move.background.color = "+string(a_color))
  函数名:uf_change_text_color
  参数:double a_color
  函数体:
dw_1.modify ( "st_text.color = "+string(a_color))
  (4)在constructor事件中输入以下代码:
dw_1.insertrow (0)
this.uf_schedule_move ( 0 )
ii_width = this.width

  好了,一个标准的进度条用户对象就封象好了!在程序中任意地使用吧!
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值