| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4023 人关注过本帖, 1 人收藏
标题:[求助]这个功能能实现吗?pb→excel
只看楼主 加入收藏
rmajly
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-11
收藏(1)
 问题点数:0 回复次数:3 
[求助]这个功能能实现吗?pb→excel
我是一个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完全相同!

请问具体如何编码,非常感谢!
搜索更多相关主题的帖子: excel 
2008-12-11 22:05
ucandoit1010
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Republic of Taiwan
等 级:版主
威 望:6
帖 子:44
专家分:20
注 册:2008-9-7
收藏
得分:0 
以下是引用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//删除对象
2008-12-12 10:59
rmajly
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-11
收藏
得分:0 
非常感谢回复,回头再向您汇报。
2008-12-12 13:39
x88484532
Rank: 2
等 级:论坛游民
帖 子:34
专家分:30
注 册:2010-8-5
收藏
得分:0 
不错,收藏了使用
2010-09-24 14:34
快速回复:[求助]这个功能能实现吗?pb→excel
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015011 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved