#2
ucandoit10102008-12-12 10:59
以下是引用rmajly在2008-12-11 22:05的发言: 我是一个pb编程业余爱好者,刚开始起步学习中,遇到如下的问题,急盼解答: 简单的讲:比方我建立的一个窗口里有cb_start,cb_set,有mle_content1,mle_content2,mle_content3,几个编辑窗。 我希望首先在mle_ ... PB做这个不难,初学者要花时间自己去TRY才会学到东西 Pb中对Excel文件的应用 Oleobject ole_object//建立OLE对象 ole_object=create oleobject//创建对象 integer li_ret li_ret=ole_object.connecttoobject("","Excel.Application")//建立连接 if li_ret<>0 then //如果Excel还没有打开,则新建。 li_ret=ole_object.ConnectToNewObject("Excel.Application") if li_ret<>0 then messagebox("OLE错误","OLE无法连接!错误号:"+string(li_ret)) return end if ole_object.Visible=true end if pointer oldpointer//设置鼠标 oldpointer=setpointer(HourGlass!) ole_object.Workbooks.Add//新建工作薄 ole_object.Application.DisplayAlerts=False//关闭警告消息对话框,防止提示 ole_object.Application.Workbooks.Open(as_excel_filename)//打开Excel文件 //ole_object.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158)//把打开的Excel文件另存为 //Text文件,第二参数表示数据以制表符TAB分隔 ole_object.Application.Quit()//退出Excel ole_object.activeworkbook.saved=true//放弃存盘 ole_object.workbooks.close//关闭工作簿 ole_object.Cells(1,1).Value=reptitle ole_object.Range('A1').Select ole_object.Selection.Font.Size=24 ole_object.selection.HorizontalAlignment=3//水平对齐方式: ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Select ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Merge ole_object.Columns(i).ColumnWidth=ld_width ole_object.Columns(i).HorizontalAlignment=3 ole_object.Columns(i).Borders.LineStyle=1 ole_object.Columns(i).Font.Bold=True ole_object.cells(i,j).NumberFormat="@" ole_object.cells(i,j).Font.Bold=false ole_object.cells(i,j).value=ls_value OLE_MyExcel.ActiveWorkbook.Activesheet.UsedRange.Rows.Count Sheets.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).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])” ⑤打印属性设置 Ole_object.ActiveSheet.pagesetup.LeftHeader="" Ole_object.ActiveSheet.pagesetup.CenterHeader=""//设置页眉 Ole_object.ActiveSheet.pagesetup.RightHeader=""// Ole_object.ActiveSheet.pagesetup.LeftFooter="" Ole_object.ActiveSheet.pagesetup.CenterFooter=""//设置页脚 Ole_object.ActiveSheet.pagesetup.RightFooter="" Ole_object.ActiveSheet.pagesetup.LeftMargin=0//设置左边距 Ole_object.ActiveSheet.pagesetup.RightMargin=0//设置右边距 Ole_object.ActiveSheet.pagesetup.TopMargin=2/0.035//设置顶边距为2厘米 Ole_object.ActiveSheet.pagesetup.BottomMargin=0//设置底边距 Ole_object.ActiveSheet.pagesetup.HeaderMargin=2/0.035//设置页眉到顶端边距2厘米 Ole_object.ActiveSheet.pagesetup.FooterMargin=3/0.035//设置页脚到底边距为3厘米 Ole_object.ActiveSheet.pagesetup.PrintHeadings=False Ole_object.ActiveSheet.pagesetup.PrintGridlines=False//设置打印单元格网线 Ole_object.ActiveSheet.pagesetup.PrintQuality=600 Ole_object.ActiveSheet.pagesetup.CenterHorizontally=True//设置页面水平居中 Ole_object.ActiveSheet.pagesetup.CenterVertically=True//设置页面垂直居中 Ole_object.ActiveSheet.pagesetup.Orientation=2//打印方向1垂直;2水平 Ole_object.ActiveSheet.pagesetup.Draft=False Ole_object.ActiveSheet.pagesetup.PaperSize=9//8-A3;9-A4//设置纸张大小 Ole_object.ActiveSheet.pagesetup.Order=1//打印次序:1先上下再左右2先左右再上下 Ole_object.ActiveSheet.pagesetup.FitToPagesWide=1//缩放在一页中:0否;1是 Ole_object.ActiveSheet.usedrange.copy//拷贝整个工作表 Ole_object.ActiveSheet.cells(1,4).clearcontents//清除单元格公式 Ole_object.ActiveSheet.printpreview//打印预览工作表 Ole_object.ActiveSheet.printout//打印输出工作表 Ole_object.ActiveSheet..range(“a1:e3”).copy//拷贝指定区域 Ole_object.worksheet(“sheet2”).range(“a1”).pastespecial//粘贴 Ole_object.ActiveSheet.rows(2).insert//在第2行之前插入一列 Ole_object.ActiveSheet.colunms(2).insert//在第2列之前插入一列 ole_object.Application.DisplayAlerts=False ole_object.activeworkbook.sheets.Add//新增工作表 ole_object.worksheets("sheet3").activate//设活动工作表 ole_object.worksheets("sheet1").delete//删除指定工作表 ole_object.caption=""//修改标题 ole_object.visible=true//显示Excel窗口 ole_object.activeworkbook.saveas('C:\adm.xls') ole_object.activesheet.columns(1).columnwidth=5//设置指定列的宽度(单位:字符个数) ole_object.activesheet.rows(1).rowheight=1/0.035//设置指定行的高度(单位:磅,设定行高为1厘米,1磅=0.035厘米) ole_object.worksheets(‘sheel1’).rows(18).pagebreak=1//在每18行之前插入分页符ole_object.activesheet.columns(4).pagebreak=0//在第4列之前删除分页符 ole_object.cells(1,1).value=1//给单元格赋值 ole_object.cells(2,1).value=2 ole_object.cells(4,5).value='=sum(a1,a2)' ole_object.Range('a1:z6555').locked=false//单元格保护锁定 ole_object.Range('a1:z6555').FormulaHidden=true//单元格公式隐藏 ole_object.Application.ActiveSheet.Protect('12345',true,true,true)//对活动单元格进行保护 ole_object.Application.Activeworkbook.Protect('12345',true,true)//对活动工作簿进行保护 ole_object.Application.ActiveSheet.unProtect('12345')//取消对活动单元格进行保护 ole_object.Range('A1:c1').Select//选取范围 ole_object.Range('A1:d4').Merge//合并单元格 ole_object.Selection.Font.Size=24 ole_object.Columns(1).Font.Bold=True ole_object.selection.HorizontalAlignment=3//水平 ole_object.Columns(1).ColumnWidth=10//设置列宽 ole_object.Range('a1:d4').borders().weight=4//设置边框线宽 ole_object.Range('a1:d4').borders().linestyle=1//设置边框样式 ole_object.ActiveSheet.name="xzm" ole_object.workSheet('sheet2').name="xzm"//修改当前工作表名称 ole_object.activeworkbook.ActiveSheet.name="xzm" //ole_object.Application.Quit() ole_object.disconnectobject()//取消连接 destroyole_object//删除对象 |
我是一个pb编程业余爱好者,刚开始起步学习中,遇到如下的问题,急盼解答:
简单的讲:比方我建立的一个窗口里有cb_start,cb_set,有mle_content1,mle_content2,mle_content3,几个编辑窗。
我希望首先在mle_content1填入一个名字比方name1,点击cb_start,就自动新建一个命名为name1的excel文档,并按要求放在指定的F盘“工作文档”下。
平常具体应用时,比方我们在mle_content2,mle_content3分别填入“name2”,“name3”,点击cb_set按钮,会完成如下任务:1、把刚才mle_content1里填入的“name1”内容发送到name1文档里sheet1里的指定单元格A3,sheet2的B4,sheet3的C5;2、把“name2”内容发送到同样文档的sheet1的A2,sheet2 的B3,sheet3的C4;3、把“name3”内容发送到sheet1里的A1,sheet2的B2,sheet3的C3。
注:这几个name1完全相同!
请问具体如何编码,非常感谢!