pb操作文档表格源码

合集下载

pb导出excel(直接导出)

pb导出excel(直接导出)

基本操作:Ole_object.Workbooks.add//新建一个Excel文件Ole_object.Workbooks.Open("FileNam e")//打开一个已存在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)=’黑体’//设置字体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操作Excel文件

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的操作

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调取word

pb调取word

//对齐方式ole_object.Selection.ParagraphFormat.Alignment//粗体ole_object.Selection.Font.Bold//字体ole_//斜体ole_object.Selection.Font.Italic//下划线ole_object.Selection.Font.Underline//字号ole_object.Selection.Font.Size//前景色ole_object.Selection.Font.Color//建立OLEObject对象OLEObject ole_objectole_object=CREATE OLEObjectif ole_object.ConnectToNewObject("Word.Application")<>0 then MessageBox('OLE错误','OLE无法连接!请确定已经安装EXCEL!') returnEND IF//添加工作表ole_object.Documents.Add //创建包含一定数目的空白工作表的工作簿ole_object.visible=true//ole_documents=ole_object.Documents(1).Activate//插入一段文字string ss="我是一个学生,我在测试录制宏"ole_object.Selection.TypeText(s)//选择刚才插入的文字ole_object.Selection.MoveLeft(1,len(s),1)//把选中的文字转成14号黑体粗字ole_ = "黑体"ole_object.Selection.Font.Size = 14ole_object.Selection.Font.Bold = True//保存ole_object.ActiveDocument.saveas("d:\test.doc")//释放Ole_Object.DisConnectObject()Destroy Ole_Object/****************************************************************************** *名称:gf_savetoword描述:将数据窗口中的数据导到WORD中参数:adw_1, 数据窗口;filename , 要导到哪个文件里面。

pb中excel的方法

pb中excel的方法

String szPathName,szFileName,szSelectInt iLoopOLEObject MyObjectDate dtTskDtIF GetFileSaveName("Select File",szPathName,szFileName,"xls","Excel 文件(*.xls),*.xls,")=1 THENIF dw_Main.SaveAs(szFileName,Excel! ,True)<0 THENopenwithparm(w_message,"保存文件失败!!请重新保存文件!")ReturnEND IFMyObject=CREA TE OLEObjectIF MyObject.ConnectToObject(szPathName)<0 THENopenwithparm(w_message,"保存文件失败!!请重新保存文件!")ReturnEND IFSetPointer(HourGlass!)MyObject.Application.WorkBooks(1).Windows(1).V isible=TrueMyObject.Application.WorkBooks(1).WorkSheets(1).Rows(1).InsertszSelect = This.TagIF szSelect<>'' and is_select = 'N' THENiLoop=0DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;PREPARE SQLSA FROM :szSelect;OPEN DYNAMIC my_cursor;FETCH my_cursor INTO :dtTskDt;Do While SQLCA.SqlCode=0//MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(1,iLoop*3+3).V alue=dtTskDt//20 03.02.27屏蔽//MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(1,iLoop*3+4).V alue=dtTskDt//MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(1,iLoop*3+5).V alue=dtTskDtMyObject.Application.WorkBooks(1).WorkSheets(1).Cells(1,iLoop*4+3).V alue=dtTskDt//2003.0 2.27新增MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(1,iLoop*4+4).V alue=dtTskDt//20 03.02.27新增MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(1,iLoop*4+5).V alue=dtTskDt//20 03.02.27新增MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(1,iLoop*4+6).V alue=dtTskDt//20 03.02.27新增//2003.12.25新增---------------------------setremote("R2C1","起点","Excel",szPathName)setremote("R2C2","终点","Excel",szPathName)MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(2,iLoop*4+3).V alue='车数'MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(2,iLoop*4+4).V alue='件数'MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(2,iLoop*4+5).V alue='万支数'MyObject.Application.WorkBooks(1).WorkSheets(1).Cells(2,iLoop*4+6).V alue='吨位'//-----------------------------------------FETCH my_cursor INTO :dtTskDt;iLoop=iLoop+1LOOPCLOSE my_cursor;ELSEMyObject.Application.WorkBooks(1).WorkSheets(1).Rows(1).deleteMyObject.Application.WorkBooks(1).WorkSheets(1).Rows(1).clearsetremote("R1C1","起点","Excel",szPathName)setremote("R1C2","终点","Excel",szPathName)setremote("R1C3","总车数","Excel",szPathName)setremote("R1C4","总件数","Excel",szPathName)setremote("R1C5","总吨位","Excel",szPathName)setremote("R1C6","总吨公里","Excel",szPathName)setremote("R1C7","总万支数","Excel",szPathName)//2003.02.27新增END IFMyObject.Application.WorkBooks(1).Save()MyObject.Application.WorkBooks.Close()MyObject.DisConnectObject()DESTROY MyObjectSetPointer(Arrow!)END IF。

PB中使用OLEObject操作Excel

PB中使用OLEObject操作Excel

PB中使用OLEObject操作Excel在PB中使用OLEObject操作Excelglave posted @ 2009年7月14日 06:15 in PB with tags PB OLE excel, 4671 阅读在PB使用OLEObject操作Excel1.申明和定义(其他变量定义省略)OLEObject xlapp // EXCEL application objectOLEObject xlwk // EXCEL workbook objectOLEObject xlsub // EXCEL worksheet objectOLEObject xlcel // EXCEL cell object2.连接Excel文件,ls_path为Excel路径xlapp = create OLEObjectli_ret = xlapp.ConnectToObject(ls_path)if li_ret < 0 thenMessageBox("ERR","")destroy xlappend if3.打开Excel的workbookll_cnt = xlapp.Application.Workbooks.Count //获取当前workbook的个数xlwk = xlapp.Application.Workbooks[ll_cnt] //打开最新的一个对象,也就是上面连接后打开的excel对象(如果改文件已经打开,需特殊考虑)xlsub = xlwk.Worksheets[1]xlapp.Application.Windows(ll_cnt).Visible = true //设置对象不可视xlsub.Activate4.操作Excel的sheet//设置单元格背景颜色xlsub.cells(1,1).Interior.Color = rgb(255,0,0)xlsub.cells(1,1).Interior.Pattern = "1"//设置列的filterxlsub.Rows("1:1").AutoFilter//获取Excel行数ll_rowcnt_xls = /doc/c24540444.html,edRange.Rows.Count //设置Excel列宽自动大小(随内容宽度自动变化)xlsub.Rows("1:" + string(ll_rowcnt_xls)).Columns.AutoFit//sheet锁定, false:解锁; true:加锁xlsub.Cells.Locked = False//做一个下拉列表框,当选择DEL时候背景变成红色,选择NoAction无变化xlsub.Range(ls_range).Validation.Delete xlsub.Range(ls_range).Validation.Add("3", "1", "1", "NoAction,DEL") xlsub.Range(ls_range).Validation.IgnoreBlank = Truexlsub.Range(ls_range).Validation.InCellDropdown = Truexlsub.Range(ls_range).Validation.InputTitle = ""xlsub.Range(ls_range).Validation.ErrorTitle = ""xlsub.Range(ls_range).Validation.InputMessage = ""xlsub.Range(ls_range).Validation.ErrorMessage = ""xlsub.Range(ls_range).Validation.IMEMode(0)xlsub.Range(ls_range).Validation.ShowInput = Truexlsub.Range(ls_range).Validation.ShowError = Truexlsub.Range(ls_range).FormatConditions.Deletexlsub.Range(ls_range).FormatConditions.Add("1", "3", "DEL") xlsub.Range(ls_range).FormatConditions(1).Font.Color = rgb(255,0,0)//设置sheet单元格格式为文本格式xlsub.Cells.NumberFormatLocal = "@"// 设置保护,第一个参数是密码,后面的参数比较复杂,可以自己去一个一个实验xlsub.protect("password",true, true,true, false,false,false,false,true,true, false,true,true,false,true,false)//将sheet1的一列复制到sheet2中xlwk.Sheets("sheet1").Select()xlwk.Sheets("sheet1").Columns(ll_col_xls).Copy() // 要复制的列xlwk.Sheets("sheet2").Select()xlwk.Sheets("sheet2").Columns(ll_col_newsheet).Select() // 粘贴到ll_col_newsheet列前xlwk.Sheets("sheet2").Paste()5.关闭Excelxlapp.Application.DisplayAlerts = False // 不提示保存等提示信息,且为不保存xlwk.save()xlwk.Close()xlapp.ConnectT oObject(ls_path) //从新打开一个Excel对象ll_cnt = xlapp.Application.Workbooks.Countxlwk = xlapp.Application.Workbooks[ll_cnt]xlapp.Application.DisplayAlerts = True// -------------------------------------------// 上面关闭提示了,这里要解开关闭,否则其他woekbook关闭也没提示,//但是直接设置为true是不可以的(见下面两行代码),必须再打开一个对象,再设置为true才可以//xlapp.Application.DisplayAlerts = False//xlapp.Application.DisplayAlerts = True//--------------------------------------------xlwk.close()xlapp.DisConnectObject()Destroy xlsubDestroy xlwkDestroy xlapp其他一些简单的操作,网上有很多很好的资料,这里只是提到一些特殊的操作,例如:下拉列表框,选择条件,设置保护等等而这些也正是网上还不容易找到答案的.因为在Excel录制了宏之后,把宏放到PB里还是会出现很多问题,需要查阅资料以及自己的实验才能得出正确结果,希望对需要的人有帮助.。

PB控制EXCEL的全面认识要点

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中导出Excel表

在PB中导出Excel表

在PB中导出Excel表关于在PB中导出Excel表的问题应该是个老问题了,大家讨论了不知道有多少年了,今天我也遇到了这个问题,上网找了半天大家说什么的都有。

总结了一下,把我看到的都贴出来,呵呵。

一.// ... Init docname// ... GetFileOpenName or any other methodif dw_1.SaveAs(docname, HTMLTable!, True) = -1 thenMessageBox("Warning", "Unable to export data. Error writing to file!", Exclamation!)returnend if// Convert HTML file to Excel native formatOLEObject excelexcel = CREATE OLEObjectif excel.ConnectToObject(docname) = 0 thenexcel.application.DisplayAlerts = FALSEexcel.application.workbooks(1).Parent.Windows(excel.application.workb ooks(1).Name).Visible = Trueexcel.application.workbooks(1).saveas(docname, 39)excel.application.workbooks(1).close()end ifDESTROY excel// done二.支持导出分组带、合计带,并且支持多层嵌套报表导出,基本是所见及所得。

///////////////////////////////////////////////////////////////////// ////////// Parameters : ad_dw : datawindow// as_file : file name// Returns : true/false : boolean// Description : Save the datawindow as a excel file./////////////////////////////////////////////////////////////////////// //////// author : purplekite// date : 2003-01-23///////////////////////////////////////////////////////////////////////////SetPointer(HourGlass!)//declare the local variableslong i, j, li_posstring ls_objects, ls_obj, ls_text, ls_err, ls_sqldatastore lds_saveas //导出数据窗datastore lds_sort //获得根据 object.x 排序的 (band = detail and visible = 1) 的 column/computeboolean lb_return //返回值string ls_pbver //pb 版本信息environment env //环境变量getenvironment(env)ls_pbver = string(env.pbmajorrevision)//创建排序列 datastorelds_sort = create datastorels_sql = 'column=(type=char(1) name = ztext dbname="ztext" )' + '~r~n' + &'column=(type=char(1) name = zcol dbname="zcol" )' + '~r~n' + &'column=(type=long name = zx dbname="zx" )' + '~r~n'ls_sql = 'release ' + ls_pbver + ';~r~ntable(' + ls_sql + ')'lds_sort.create(ls_sql, ls_err)if len(ls_err) > 0 thenlb_return = falsegoto lab1end if//准备数据====================================================//all controlsls_objects = ad_dw.Describe("datawindow.objects")//按~t位置作判断开始循环do while (pos(ls_objects,"~t") > 0)li_pos = pos(ls_objects,"~t")ls_obj = left(ls_objects,li_pos - 1)ls_objects = right(ls_objects,len(ls_objects) - li_pos)//(column or compute ) at detail and visibleIF (ad_dw.Describe(ls_obj+".type") = "column" or &ad_dw.Describe(ls_obj+".type") = "compute" ) AND &(ad_dw.Describe(ls_obj+".band") = "detail" ) AND &(ad_dw.Describe(ls_obj+".visible") = "1" ) THENls_text = ad_dw.describe(ls_obj + '_t.text')if ls_text <> '!' and ls_text <> '?' thenlds_sort.insertrow(0)lds_sort.setitem(lds_sort.rowcount(), 'ztext', ls_text)lds_sort.setitem(lds_sort.rowcount(), 'zcol', ls_obj)lds_sort.setitem(lds_sort.rowcount(), 'zx', long(ad_dw.describe(ls_obj + '.x')))end ifEND IFloop//the last controlls_obj = ls_objectsIF (ad_dw.Describe(ls_obj+".type") = "column" or &ad_dw.Describe(ls_obj+".type") = "compute" ) AND &(ad_dw.Describe(ls_obj+".band") = "detail" ) AND &(ad_dw.Describe(ls_obj+".visible") = "1" ) THENls_text = ad_dw.describe(ls_obj + '_t.text')if ls_text <> '!' and ls_text <> '?' thenlds_sort.insertrow(0)lds_sort.setitem(lds_sort.rowcount(), 'ztext', ls_text)lds_sort.setitem(lds_sort.rowcount(), 'zcol', ls_obj)lds_sort.setitem(lds_sort.rowcount(), 'zx', long(ad_dw.describe(ls_obj + '.x')))end ifEND IF//如果没有列则跳出if lds_sort.rowcount() < 1 then goto lab1//根据 object.x 排序lds_sort.setsort('zx A')lds_sort.sort()//创建导出 datastorelds_saveas = create datastorels_sql = ''for i = 1 to lds_sort.rowcount()ls_obj = lds_sort.getitemstring(i, 'zcol')ls_sql += 'column=(type=char(1) dbname="' + ls_obj + '" )' + '~r~n' nextls_sql = 'release ' + ls_pbver + ';~r~ntable(' + ls_sql + ')'lds_saveas.create(ls_sql, ls_err)if len(ls_err) > 0 thenlb_return = falsegoto lab1//向 lds_saveas 中写数据for i = 1 to ad_dw.rowcount()yield()//释放消息队列, 如果数据量较大, 可以使用这个函数lds_saveas.insertrow(0)for j = 1 to lds_sort.rowcount()ls_obj = lds_sort.getitemstring(j, 'zcol')if ad_dw.describe(ls_obj + '.type') = 'column' thenls_text = ad_dw.describe('evaluate(~'LookUpDisplay(' + ls_obj + ')~', ' + string(i) + ')')elsels_text = ad_dw.describe('evaluate(~'' + ls_obj + '~',' + string(i) + ')') end iflds_saveas.setitem(i, j, ls_text)nextnextlds_saveas.insertrow(1)for i = 1 to lds_sort.rowcount()lds_saveas.setitem(1, i, lds_sort.getitemstring(i, 'ztext'))next//准备数据完毕====================================================//saveas datawindowlb_return = (lds_saveas.saveas(as_file, excel!, false) = 1)lab1:destroy lds_sortdestroy lds_saveasSetPointer(Arrow!)return lb_return支持导出分组带、合计带,并且支持多层嵌套报表导出,基本是所见及所得。

PB的OLE编程

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的操作.net-电脑资料

在PB中实现对EXCEL的操作.net-电脑资料

在PB中实现对EXCEL的操作.net-电脑资料在PB实现象下面的VFP 的应用,好将资料放到一个电子表格Myexcel=createobject('EXCEL.APPLICATION')MYEXCEL.VISIBLE=.f. MYEXCEL.WORKBOOKS.ADD O1=MYEXCEL.ACTIVEWORKBOOK.SHEETS(1) ='IN' o1.CELLS(1,2).VALUE='abc' 又如: excel=createobject(' 在PB实现象下面的VFP 的应用,好将资料放到一个电子表格Myexcel=createobject('EXCEL.APPLICATION')MYEXCEL.VISIBLE=.f.MYEXCEL.WORKBOOKS.ADDO1=MYEXCEL.ACTIVEWORKBOOK.SHEETS(1)='IN'o1.CELLS(1,2).VALUE='abc'又如:excel=createobject('excel.application')EXCEL.VISIBLE=.T.ExcelFile="D:\MYDOCU~1\DC1999\DC_MDT.XLS"if not file(ExcelFile)wait wind 'no file:'+excelfilereturnendifexcel.workbooks.open(ExcelFile)PB实现象上述VFP 的应用,代码如下:方法一:OLEObject ExcelServerinteger ExcelOKExcelServer = CREATE OLEObjectExcelOK = ExcelServer.ConnectToNewObject( "excel.application" )ExcelServer.Workbooks.Open("c:\book.xls") ExcelServer.ActiveWorkBook.Sheets("Sheet2").Select ExcelServer.ActiveSheet.Cells(1,1).value = "书名" ExcelServer.Application.Visible = TRUE方法二:先启动excel文件long handle_1handle_1 = OpenChannel("Excel", "c:\book.xls")//建立与EXCEL的通道setremote("r1c1","书号","excel"," c:\book.xls") setremote("r1c2","书名","excel"," c:\book.xls")//更改某一行或某一列的值,同时关闭通道closechannel(handle_1,handle(parent))。

PB导数据为EXCEL代码

PB导数据为EXCEL代码

如何用PB代码将后台数据导到下列EXCEL格式,数据都在TABLE1
单位 编号 姓名 金额
001 23 李 120
002 33 王 120
003 25 刘 130
````````
将下面代码复制,粘贴到记事本内,另存为f_pbtoexcel.srf,然后倒入都pb程序内,用法:加入数据窗口是dw_1,那么就f_pbtoexcel(dw_1)。
//当文件存在用户选择覆盖,或是文件本就不存在时。注意变量li_rtn
li_rtn=adw.SaveAsAscii(ls_pathname)
if li_rtn=1 then
//MessageBox("提示信息","导出数据成功!")
else
MessageBox("错误信息","导出数据失败!")
end prototypes
global function integer f_pbtoexcel (datawindow adw);integer li_rtn,ii,li_asc
string ls_name,ls_pathname
boolean lb_exist
if adw.RowCount()<1 then
return -1//error
end if
else
return -1//error
end பைடு நூலகம்f
else
return -1
end if
return 1
end function
lb_exist = FileExists(ls_pathname)

pb,word,表格

pb,word,表格

竭诚为您提供优质文档/双击可除pb,word,表格篇一:pb数据窗口导出word、excel文档dw2word,dw2xlspb数据窗口数据导出到word,excel,excel可以自定义修改excel文档的列宽对齐方式,字体样式等//dwsave2word调用oleglobaltypegf_exportdata2wordfromfunction_object endtypeforwardprototypesglobalsubroutinegf_exportdata2word(datawindowad_dat awindow)endprototypesglobalsubroutinegf_exportdata2word(datawindowad_dat awindow);stringls_filepathls_filepath=gf_getfilesavename()oleobjectoleobjectwordoleobjectword=createoleobject//连接wordifoleobjectword.connecttonewobject("word.applicatio n")0thenmessagebox("提示","ole连接错误!") returnendifoleobjectword.visible=false//word文档在操作数据过程中是否可见longcol_colnum,col_rownumconstantlongwdtablebehavior=1constantlongwdautoFitFixed=0constantlongwdcell=12stringstr_value//得到数据窗口数据的列数和行数(行数应该是数据行数+1)col_colnum=long(ad_datawindow.object.datawindow.col umn.count)col_rownum=ad_datawindow.rowcount()+1 //先在word文档中画好表格setpointer(hourglass!)oleobjectword.documents.addoleobjectword.activedocument.tables.add(oleobjectwo rd.selection.Range,#+string(i)+".name")+"_t"str_val ue=ad_datawindow.describe(ls_colname+".text") oleobjectword.selection.typetext(str_value)oleobjectword.selection.moveRight(wdcell)nextad_datawindow.setRedraw(false)oleobjectword.selection.moveleft(wdcell)setpointer(hourglass!)fori=2tocol_rownumforj=1tocol_colnumad_datawindow.scrolltorow(i-1)ad_datawindow.setcolumn(j)str_value=ad_datawindow.getitemstring(i-1,j)ifisnull(str_value)thenstr_value=endifoleobjectword.selection.moveRight(wdcell)oleobjectword.selection.typetext(str_value)nextnextad_datawindow.setredraw(true)constantlongwdFormatdocument=0//保存新建的文档oleobjectword.activedocument.saveas(ls_filepath,0,f alse,"",true,"",false,false,false,false,false) booleanlb_existlb_exist=Fileexists(ls_filepath)iflb_existthenmessagebox("提示","数据已经保存到"+ls_filepath) endif//断开ole连接oleobjectword.disconnectobject()destroyoleobjectwordendsubroutine//dwsave2xls调用oleglobaltypegf_dwsavetoexcelfromfunction_objectendtypeforwardprototypesglobalfunctionintegergf_dwsavetoexcel(datawindowadw) endprototypesglobalfunctionintegergf_dwsavetoexcel(datawindowadw );stringxlsname,namedintegervaluestringcol_del,first_delvalue=getFilesavename("另存",xlsname,named,"xls","xlsFiles(*.xls),*.xls")ifval ue=1thenadw.saveas(xlsname,excel!,tRue)elsereturn2endifconstantintegerpplayoutblank=12oleobjectole_objectole_object=cReateoleobjectintegerli_retli_ret=ole_object.connecttoobject("","excel.applica tion")iFli_ret0thenli_ret=ole_object.connecttonewobject("excel.applica tion")iFli_ret0thenmessagebox("ole错误","ole无法连接!~r~n错号:"+string(li_ret))Return0endiFole_object.visible=FalseendiFpointeroldpointeroldpointer=setpointer(hourglass!)ole_object.workbooks.open(xlsname)ole_object.worksheets[1].activatelongcolumncount,rowscountcolumncount=long(adw.object.datawindow.column.count )rowscount=adw.rowcount()+1stringls_colname[],ls_valueintegeri,jlonghandle为误handle=openchannel("excel",xlsname)//将列名转化为中文名称,即标题头名称forj=1tocolumncountls_colname[j]=adw.describe("#"+string(j)+".name")ls_value=adw.describe(ls_colname[j]+"_t"+".text")//ole_object.activesheet.cells[1,j].value=ls_value 开始的方法setRemote("R1c"+stRing(j),ls_value,handle)nextdatawindowchildldw_childlongll_foundForj=1tocolumncount//col_del标识将要删除不可见的列ifadw.describe("#"+string(j)+".visible")="0"then iFinteger(j) //当列小于26时,excel中用a-z表示列号first_del=char(integer(j)+64)else//大于26,小于等于52列时,aa-az,大于52列时可能性不大未做考虑first_del="a"+char(integer(j)+38) endifcol_del=col_del+first_del+":"+first_del+","continueendif//当列可见且为下拉数据窗口时,数据值转化为显示值ifadw.describe("#"+string(j)+".edit.style")=dddwthe nadw.getchild(ls_colname[j],ldw_child)fori=1torowscount-1//"dm","dmyy"是我通常用下拉数据子窗口的值以及显示值//更通用的方法是用dddw.datacolumn,dddw.displaycolumn得到ll_found=ldw_child.Find("dm"+"="+adw.getitemstring( i,j)+"",1,ldw_child.Rowcount())ifll_found>0thensetRemote("R"+stRing(i+1)+"c"+stRing(j),ldw_child.g etitemstring(ll_found,"dmyy"),handle)endif//另外一种方法,数据量大时比现用方法速度慢//setRemote("R"+stRing(i+1)+"c"+stRing(j),adw.descr ibe("evaluate(lookupdisplay(#"+string(j)+"),"+string(i)+")"),handle)nextendifnextclosechannel(handle)ifcol_delthencol_del=leFt(col_del,len(col_del)-2)//删除不可见列ole_object.activesheet.range(col_del).delete endifsetpointer(oldpointer)ole_object.activeworkbook.save()ole_object.application.quit()ole_object.disconnectobject()destroyole_objectReturn1endfunctionstringls_assize,namedintli_value,li_rt,li_rc,li_rt1//li_value=gf_dwsavetoexcel(dw_detail)//ifdw_detail.rowcount()setpointer(hourglass!)li_value=getfilesavename("saveFile",ls_assize,named ,"excel","excelfiles(*.xls),*.xls,"+stringls_filepa thls_filepath=gf_getfilesavename()oleobjectoleobjectwordoleobjectword=createoleobject//连接wordifoleobjectword.connecttonewobject("word.applicatio n")0thenmessagebox("提示","ole连接错误!")returnendifoleobjectword.visible=false//word文档在操作数据过程中是否可见longcol_colnum,col_rownumconstantlongwdtablebehavior=1constantlongwdautoFitFixed=0constantlongwdcell=12stringstr_value//得到数据窗口数据的列数和行数(行数应该是数据行数+1)col_colnum=long(ad_datawindow.object.datawindow.column.count)col_rownum=ad_datawindow.rowcount()+1//先在word文档中画好表格setpointer(hourglass!)oleobjectword.documents.addoleobjectword.activedocument.tables.add(oleobjectword.selection.Range,#+string(i)+".name")+"_t"strvalue=ad_datawindow.describe(ls_colname+".text") oleobjectword.selection.typetext(str_value)oleobjectword.selection.moveRight(wdcell)nextad_datawindow.setRedraw(false)oleobjectword.selection.moveleft(wdcell)setpointer(hourglass!)fori=2tocol_rownumforj=1tocol_colnumad_datawindow.scrolltorow(i-1)ad_datawindow.setcolumn(j)1121。

PB操作Excel详解

PB操作Excel详解

run("notpad.exe") ////pb 运行记事本run("calc.exe") ////pb运行计算器记住:当我们用PB导出数据到EXCEL时,不管是用Saveas 还是clipboard 它输出的数据是定义了字段类型的列的数据,也就是说,不管列是可见还是不可见,只要该列定义了列属性,在查询时主缓冲区中该列有数据,则就会导出出来~用方法得到列名或其他属性也是一样的~及时隐藏了也可以得到当中间的某列给隐藏时,下次打开后它会显示在末尾的位置,但是用Saveas输出数据时,不管它是否隐藏,是否改变了位置,它仍可输出数据而且位置还是不变的~也就是说没有改变数据窗口对象的源,数据窗口对象上显示的列位置只会影响我们在程序界面上看到的位置,而不会影响它在后台存储的实际位置。

但是这样会改变界面显示的位置,记住,没有改变源如何用PB程序在excel画表格边框线,如何改变文字大小1.创建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=.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).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厘米veole.ActiveSheet.PageSetup.LeftMargin=2/0.03521.设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.03522.设置页面水平居中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=2533.设置字体为斜体eole.ActiveSheet.Cells(1,1).Font.Italic=.t.34.设置整列字体为粗体eole.ActiveSheet.Columns(1).Font.Bold=.t.35.清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents36.打印预览工作表eole.ActiveSheet.PrintPreview37.打印输出工作表eole.ActiveSheet.PrintOut38.工作表另为eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)39.放弃存盘eole.ActiveWorkbook.saved=.t.40.关闭工作簿eole.Workbooks.close41.退出Exceleole.quit先把标题放到剪贴板上,再PASTE()到EXCEL中,代码如下:::clipboard(ls_value)ao_object.range(ls_col+string(1)+":"+ls_col+string(1)).select()ao_object.activesheet.Paste()/*************************************************************下面的函数f_excel_hb,可以实现“将工作簿filename_s中的工作表sheetname_s以新的工作表名称sheetname_t,复制到工作簿filename_t的最后”1.public function boolean f_excel_hb (string filename_s, string filename_t, string sheetname_s, string sheetname_t);2.//==========================================================3.// 合并两个工作簿中的某个工作表4.//==========================================================5.// 作者:yyoinge 2011-10-12 18:006.//==========================================================7.// 将工作簿filename_s中的工作表sheetname_s以新的8.// 工作表名称sheetname_t,复制到工作簿filename_t的最后9.//==========================================================10.if not fileexists(filename_s) then11. messagebox('','工作簿【' + filename_s + '】(源)不存在')12.return false13.end if14.if not fileexists(filename_t) then15. messagebox('','工作簿【' + filename_t + '】(目标)不存在')16.return false17.end if18.long ll_val19.//声明ole对象20.oleobject ole_object_s21.//创建ole对象22.ole_object_s=create oleobject23.//连接到excel24.ll_val = ole_object_s.connecttonewobject("excel.application")25.if ll_val <> 0 then26. messagebox('','ole无法连接Excel!')27.goto error28.end if29.//打开源和目标工作簿30.ole_object_s.workbooks.open(filename_s)31.ole_object_s.workbooks.open(filename_t)32.string ls_t33.ls_t = filename_t34.filename_s = of_splitpath(filename_s, 2)35.filename_t = of_splitpath(filename_t, 2)36.//隐藏excel37.ole_object_s.visible = false38.ole_object_s.displayalerts = false39.int n,t40.int li41.boolean isexists=false42.oleobject lworksheet43.//判断源工作簿中的工作表是否存在44.try45. lworksheet = ole_object_s.Workbooks(filename_s).sheets(sheetname_s)46. isexists = true47.catch( oleruntimeerror er)48. isexists = false49.end try50.if isexists=false then51. messagebox('','工作簿【' + filename_s + '】中工作表不存在工作表[' + sheetname_s + ']')52.goto error53.end if54.//当目标工作簿中存在sheet名为sheetname_t的工作表时,为sheetname_t增加后缀(1),然后再重复进行判断,直到表名不存在55.isexists = true56.do while isexists57.try58. lworksheet = ole_object_s.Workbooks(filename_t).sheets(sheetname_t)59. isexists = true60. sheetname_t += '(1)'61.catch( oleruntimeerror er1)62. isexists = false63. end try64.loop65.//进行工作表合并(移到目标工作簿的最后)66.//int li67.setnull(li)68.ole_object_s.workbooks(filename_s).Sheets(sheetname_s).copy(li, ole_object_s.workbooks(filename_t).Sheets(long(ole_object_s.workbooks(filename_t).Sheets.count)))69.//重命名工作表70.ole_object_s.workbooks(filename_t).sheets(long(ole_object_s.workbooks(filename_t).Sheets.count)).name = sheetname_t71.//保存目标工作簿72.isexists = true73.//ole_object_s.visible = true74.//ole_object_s.displayalerts = true75.//messagebox('', '')76.try77. ole_object_s.workbooks(filename_t).save()78.catch( oleruntimeerror er2)79. messagebox('提示', '无法保存工作簿【' + filename_t + '】')80. isexists = false81.end try82.if not isexists then goto error83.//关闭工作簿84.ole_object_s.workbooks(filename_s).close85.ole_object_s.workbooks(filename_t).close86.//退出excel87.ole_object_s.workbooks.close88.ole_object_s.Application.quit();89.//断开连接90.ole_object_s.disconnectobject();91.//注销ole对象92.destroy ole_object_s;93.return true94.error:95.ole_object_s.workbooks(filename_s).close96.ole_object_s.workbooks(filename_t).close97.ole_object_s.workbooks.close98.ole_object_s.Application.quit();99.ole_object_s.disconnectobject();100.destroy ole_object_s;101.return false102.103.104.end function/**********************************************************//*函数名称:uf_dwsaveas_excel功能:将数据窗口数据导出EXCEL文件,并将EXCEL文件默认英文标题替换成中文。

PB对excel的操作

PB对excel的操作

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_exccccccccccccc cccccccccccccccccccccel_filename)/ /打开Excel文件//ole_object.Application.ActiveWorkbook.SaveAs(as_text_fil ename,-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_/doc/1517083172.html,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/doc/1517083172.html,=?黑体?//设置字体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数据窗口与word表格的相互转换

编程实现PB数据窗口与word表格的相互转换

编程实现PB数据窗口与word表格的相互转换作者:望强在用PowerBuilder开发应用程序时,有时用户要求把外单位以Word表格形式提供的数据导入到数据窗口中,有时又需要把数据窗口导出成Word表格。

用过PB的人都知道,虽然PB的数据窗口对象提供了ImportFile和SaveAs这样两个函数,但是他们都不支持Word表格的导入导出,笔者只好另辟蹊径,现将实现的方法跟大家作个介绍。

一、将Word表格中的数据导入到数据窗口中基本思路:在Word文档里选中要导入的表格行,点鼠标右键复制到剪贴板,再从剪贴板粘贴到一个多行文本编辑框中,行列数据就变成了以回车符和制表符分割的纯文本,依次取出插到数据窗口中既可实现数据导入。

具体实现:在需要此功能的窗体上添加一个多行文本编辑框mle_1,visible属性设为False,运行时不显示;再添加一个按钮,名称Name设为cb_paste,文本Text设为“粘贴自word”,按钮cb_paste 的clicked事件对应的script代码如下:int row,p1,p2,istring str,valmle_1.Paste()//将剪贴板的内容粘贴至mle_1中do while mle_1.text<>""p1=pos(mle_1.text,"~r")//根据回车符切出行记录字符串if p1>0 then//有一个回车符则在数据窗口中增加一行记录row=dw_1.insertrow(0)str=left(mle_1.text,p1 -1)//去掉字符串结尾的回车符i=1do while str<>""p2=pos(str,"~t")//根据制表符Tab切出列字符串if p2>0 theni=i+1val=left(str,p2 -1) //去掉字符串结尾的制表符dw_1.setitem(row,i,val)//设置新插入行的列值str=mid(str,p2+1)else//将字符串剩余部分赋给最后一列i=i+1dw_1.setitem(row,i,str)exitend ifloopmle_1.text=mid(mle_1.text,p1+2)elseexitend ifloopif dw_1.update()>0 then //保存导入的数据commit;elserollback;end if二、将数据窗口导出成Word表格基本思路:将数据窗口的数据逐行读出,以制表符区分列,以回车符区分行,拼接成一个长字符串,复制到剪贴板中;然后动态创建一个OLE对象,跟事先准备的一个Word临时文档关联,将剪贴板中的内容粘贴到该文档,利用Word可以将文字转换成表格的功能,实现数据导出成Word表格。

PB全面控制Excel

PB全面控制Excel

PB下全面控制ExcelExcelServer.ActiveWorkBook.Sheets("账单明细").Select//ExcelServer.application.workbooks(1).worksheets(1) //设置第一个工作表为激活工作表ExcelServer.application.visible = truels_name = long ll_at1,ll_at7,ll_rtn,ll_excelok,ll_rowcount,ll_row,istring ls_at2,ls_at3,ls_at4,ls_at5,ls_at9,ls_at10string ls_pathname,ls_filenamedate ld_at6,ld_at8oleobject ExcelServerpointer oldpointeroldpointer = setpointer(hourglass!)ExcelServer = create Oleobjectll_excelok = ExcelServer.connecttonewobject("Excel.application")if ll_excelok <> 0 thenmessagebox("提示!","无法连接EXCEL,请确认本机是否安装了EXCEL")end ifll_rtn = getfileopenname('打开EXCEL文件',ls_pathname,ls_filename,'XLS','EXCEL文件(*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm')if ls_filename = '' then returnExcelServer.workbooks.open(ls_pathname,0,0)ExcelServer.application.visible = false//excelserver.workbooks.add()//ExcelServer.application.workbooks(1).worksheets(1) //设置第一个工作表为激活工作表//ExcelServer.application.visible = true //显示EXCEL窗口//ExcelServer.Caption='pb转excel' //更改标题ll_rowcount = edRange.rows.countfor i = 2 to ll_rowcountll_at1 = long(excelserver.activesheet.cells(i + 1,1).value)if isnull(ll_at1) then continuell_row = dw_1.insertrow(0)dw_1.setitem(ll_row,'at1',ll_at1);ls_at2 = string(excelserver.activesheet.cells(i + 1,2).value)dw_1.setitem(ll_row,'at2',ls_at2);ls_at3 = string(excelserver.activesheet.cells(i + 1,3).value)dw_1.setitem(ll_row,'at3',ls_at3);ls_at4 = string(excelserver.activesheet.cells(i + 1,4).value)dw_1.setitem(ll_row,'at4',ls_at4);ls_at5 = string(excelserver.activesheet.cells(i + 1,5).value)dw_1.setitem(ll_row,'at5',ls_at5);ld_at6 = date(string(excelserver.activesheet.cells(i + 1,6).value,'yyyy/mm/dd'))dw_1.setitem(ll_row,'at6',ld_at6);ll_at7 = long(excelserver.activesheet.cells(i + 1,7).value)dw_1.setitem(ll_row,'at7',ll_at7);ld_at8 = date(string(excelserver.activesheet.cells(i + 1,8).value,'yyyy/mm/dd'))dw_1.setitem(ll_row,'at8',ld_at8);// ls_at9 = string(excelserver.activesheet.cells(i + 1,9).value)// dw_1.setitem(ll_row,'at9',ls_at9);// ls_at10 = string(excelserver.activesheet.cells(i + 1,10).value,'yyyy/mm/dd')// dw_1.setitem(ll_row,'at10',ls_at10);//li_emp_age = integer(ls_age)//ld_emp_birthday = date(ls_birthday)st_1.text = "正在导入第: " + string(i) + "笔数据"//insert into A1_TMP values(:ls_no,:ls_name,:ls_sex,:li_emp_age,:ld_emp_birthday); nextExcelServer.quit //exitSetPointer(oldpointer)ExcelServer.DisconnectObject()DESTROY ExcelServer//dw_1.update()//delete from A1_TMP;//if dw_1.rowcount() = 0 then// rollback;// messagebox("提示","导入失败")// st_1.text ="导入失败!"//else// commit;// messagebox("提示","导入成功")// st_1.text ="导入成功!"//end if红色部分未验证。

PB源码大全.doc

PB源码大全.doc

getfirstletter.zip 5K 取汉字拼音的首字母ctrl_alt_del.zip 5K 关掉ctrl_alt_del热键multithread.zip 8K 多线程实现的例程wallpaper.zip 10K 显示图片的例程w_test.srw 4K 如何使用COM对象:WORD EXCELerrortrap.zip 19K 错误陷阱模块,错误信息可以是中文的了taskbar5.zip 10K 把PB程序加入到系统任务栏(WIN95/97/98系统)exfuns.zip 23K 常用的外部动态链接库函数alltext45.zip 3419K 现RichText,功能更强大,中文不会出现问题。

(但不能象PB自带的RichText可以和DataWindow紧密结合)closeapp.zip 5K 关闭程序context.zip 14K 实现Win95风格的上下文帮助,原来只有VB才有此功能,请看PB如何实现,帅呆了!multi.zip 41K sybase提供一个关于在在PB中实现多线程的例子。

使用SharedObjectRegister,SharedObjectGet函数实现。

mdigraph_v2.zip 97K 允许在MDI主窗口显示图形,加强程序视觉效果。

解决了当其它应用覆盖MDI窗口会出现图片被盖住的部分不能刷新。

例如切换输入法就会出现上述问题。

numerical.zip 14K 一个用户对象用于实现十进制,二进制,十六进制之间的互相转换,已经写了一个简单的例程.调用很方便.使用PFC的用户只需简单的将n_cst_numerical 替换为本程序中的对象即可.pbfix.zip 17383K PB 6.5.1中对以前PB版本进行修正过的错误列表。

pfc.txt 34K PFC入门的中文介绍,PFC是PowerBuilder开发组为PB开发的框架包,结构严谨,功能强大,为PB专业开发人员的首选。

PB程序源码文件结构pbl文件pbd文件

PB程序源码文件结构pbl文件pbd文件
最近公司给了一套pb的源码一个80一个90让给一个客户做软件整合之前只听过pb看过别人写代码为了快速上手了解了一下pb的文件记录如下
PB程序源码文件结构 pbl文件 pbd文件
最近公司给了一套PB的源码,一个8.0,一个9.0,让给一个客户做软件整合,之前只听过PB看过别人写代码,为了快速上手,了解了一下PB的文件, 记录如下: pbl为pb源码文件 pbd为程序编译后的文件 编译时loy编译输出程序 Executable File Name:输入输出路径(与dll放置在一起) 在正下方选择想要编译为PBD的Library
暂且记录到这,以后有想到的再添加.
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PB中打开了一个word文档怎么把图片插入到word文档里面去myword.Selection.InlineShapes.AddPicture('C:\1.jpg',False,True)加入的表格ole_1.ActiveDocument.Tables.Add(ole_1.Selection.Range, ll_rownum, ll_colnum,wdW ord9TableBehavior,wdAutoFitFixed)dw2word,dw2xlsPB 数据窗口数据导出到word,excel, excel 可以自定义修改excel文档的列宽对齐方式,字体样式等// dwsave2word 调用oleglobal type gf_exportdata2word from function_objectend typeforward prototypesglobal subroutine gf_exportdata2word (datawindow ad_datawindow)end prototypesglobal subroutine gf_exportdata2word (datawindow ad_datawindow);string ls_filepathls_filepath=gf_getfilesavename()OleObject OleObjectWordOleObjectWord=Create OleObject// 连接wordif OleObjectWord.ConnectToNewObject("Word.application") <> 0 then Messagebox("提示","ole连接错误!")returnend ifOleObjectWord.visible=false //word文档在操作数据过程中是否可见Long col_colnum,col_rownumConstant Long wdTableBehavior=1Constant Long wdAutoFitFixed=0Constant Long wdCell=12String str_value// 得到数据窗口数据的列数和行数(行数应该是数据行数+1)col_colnum=Long(ad_datawindow.object.datawindow.column.count)col_rownum=ad_datawindow.rowcount() + 1// 先在word文档中画好表格SetPointer(HourGlass!)OleObjectWord.Documents.AddOleObjectWord.ActiveDocument.Tables.Add(OleObjectWord.Selection.Range ,&+col_rownum,col_colnum,wdTableBehavior,wdAutoFitFixed)string ls_colnameinteger i,j,k,lfor i=1 to col_colnum//得到标题头的名称ls_colname=ad_datawindow.Describe('#'+string(i)+".name") + "_t"str_value=ad_datawindow.DEscribe(ls_colname+".text")OleObjectWord.Selection.TypeText(str_value)OleObjectWord.Selection.MoveRight(wdCell)Nextad_datawindow.setRedraw(false)OleObjectWord.Selection.MoveLeft(wdCell)SetPointer(HourGlass!)for i=2 to col_rownumfor j=1 to col_colnumad_datawindow.Scrolltorow(i - 1)ad_datawindow.SetColumn(j)str_value=ad_datawindow.GetItemstring(i - 1,j)if isnull(str_value) thenstr_value=''end ifOleObjectWord.Selection.MoveRight(wdCell)OleObjectWord.Selection.TypeText(str_value)nextnextad_datawindow.setredraw(true)Constant long wdFormatDocument=0// 保存新建的文档OleObjectWord.ActiveDocument.SaveAs(ls_filepath,0,false,"",true,"",fa lse,false,false,false,false)boolean lb_existlb_exist = FileExists(ls_filepath)if lb_exist thenmessagebox("提示","数据已经保存到"+ls_filepath)end if//断开ole连接OleObjectWord.DisconnectObject()destroy OleObjectWordend subroutine// dwsave2xls 调用oleglobal type gf_dwsavetoexcel from function_objectend typeforward prototypesglobal function integer gf_dwsavetoexcel (datawindow adw)end prototypesglobal function integer gf_dwsavetoexcel (datawindow adw); string xlsname, namedinteger valuestring col_del,first_delvalue = GetFileSaveName("另存为", xlsname,named,"XLS","Xls Files (*.XLS), *.XLS")if value = 1 thenadw.saveas(xlsname,Excel!,TRUE)elsereturn 2end ifconstant integer ppLayoutBlank = 12OLEObject ole_objectole_object = CREATE OLEObjectinteger li_retli_ret = ole_object.ConnectToObject("","Excel.Application")IF li_ret <> 0 THENli_ret = ole_object.ConnectToNewObject("Excel.Application")IF li_ret <> 0 THENmessagebox("OLE错误","OLE无法连接!~r~n错误号:" + string(li_ret))Return 0END IFole_object.visible = FalseEND IFpointer oldpointeroldpointer = SetPointer(HourGlass!)ole_object.Workbooks.open(xlsname)ole_object.WorkSheets[1].Activatelong columncount, rowscountcolumncount = long(adw.object.datawindow.column.count) rowscount = adw.rowcount() + 1string ls_colname[],ls_valueinteger i,jlong handlehandle = OpenChannel("Excel", xlsname)// 将列名转化为中文名称,即标题头名称for j = 1 to columncountls_colname[j] = adw.describe("#"+string(j)+".name")ls_value = adw.describe(ls_colname[j]+"_t"+".text")// ole_object.activesheet.cells[1,j].value =ls_value 开始的方法SetRemote("R1C"+STRING(J), ls_value, handle)nextdatawindowchild ldw_childlong ll_foundFor j = 1 To columncount//col_del标识将要删除不可见的列if adw.Describe("#" + String(j) + ".visible")="0" thenIF integer(j)<27 then//当列小于26时,excel中用A-Z表示列号first_del = char(integer(J)+64)else//大于26,小于等于52列时,AA-AZ,大于52列时可能性不大未做考虑first_del= "A"+char(integer(J)+38)end ifcol_del=col_del + first_de l +":"+ first_del+", "continueend if//当列可见且为下拉数据窗口时,数据值转化为显示值If adw.Describe("#" + String(j) + ".edit.style") = 'dddw' Thenadw.GetChild( ls_colname[j], ldw_child )for i=1 to rowscount -1//"dm","dmyy"是我通常用下拉数据子窗口的值以及显示值//更通用的方法是用DDDW.DataColumn,DDDW.DisplayColumn得到ll_found = ldw_child.Find("dm" +"= '"+adw.getitemstri ng(i,j)+"'", 1, ldw_child.RowCount())if ll_found>0 thenSetRemote("R"+STRING(i+1)+"C"+STRING(J),ldw_child.getitemstring(ll_fo und,"dmyy"), handle)end if//另外一种方法,数据量大时比现用方法速度慢//SetRemote("R"+STRING(i+1)+"C"+STRING(J),adw.Describe("Evaluate('Loo kUpDisplay(#"+string(j)+")',"+string(i)+")"), handle) nextend ifnextCloseChannel(handle)if col_del<>'' thenCOL_DEL=LEFT(COL_DEL,LEN(COL_DEL) - 2)//删除不可见列ole_object.activesheet.range(col_del).Deleteend ifSetPointer(oldpointer)ole_object.ActiveWorkBook.Save()ole_object.application.quit()ole_object.Disconnectobject()Destroy ole_objectReturn 1end functionstring ls_assize,namedint li_value,li_rt,li_rc,li_rt1//li_value=gf_dwsavetoexcel(dw_detail)//if dw_detail.rowcount() < 1 then returnSetPointer(HourGlass!)li_value=getfilesavename("Save File",ls_assize,named,"excel","excel files(*.xls),*.xls,"+&"All files (*.*),*.*")IF li_value<> 1 then returnli_rt = dw_detail.saveas(ls_assize,excel!,false)SetPointer(Arrow!)SetPointer(HourGlass!)OLEObject Ole_1Ole_1 = Create OLEObjectli_rc = Ole_1.ConnectToObject(ls_assize)if li_rc <> 0 thendestroy ole_1returnend ifOle_1.Application.Windows(named).Visible=TrueOle_1.Application.DisplayAlerts=Falseif li_rt = 1 then//aOle.Application.Workbooks[1].worksheets[1].columns(7).Insert SetPointer(HourGlass!)Ole_1.Application.Workbooks[1].worksheets[1].Rows(1).Insert// 如何设置导出列的宽度,让列之间有一定的空间?Ole_1.Sheets(1).Columns("A:Z").ColumnWidth = 22.00 // 设置某个区间的列宽Ole_1.Sheets(1).Columns[1].ColumnWidth = 13.00 // 设置某一列的列宽//aOle.Sheets(1).Columns("AG:AI").ColumnWidth = 13.00//设置对齐方式// aOle.Sheets(1).Columns(1).Select //sheet1 的第一列的对齐方式//aOle.Selection.HorizontalAlignment = -4131 //居左// aOle.Sheets(1).Columns("A:Z").HorizontalAlignment = -4 152 //居右//aOle.Sheets(1).Selection.HorizontalAlignment = -4152 //居右//aOle.Selection.HorizontalAlignment = -4108 //居中Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,1].value = "ICAJCD"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,1].Font.FontStyl e = "bold"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,2].value = "ICVICH"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,2].Font.FontStyl e = "bold"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,3].value = "ICVJCH"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,3].Font.FontStyl e = "bold"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,4].value = "ICVKCH"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,4].Font.FontStyl e = "bold"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,5].value = "ICVHCH"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,5].Font.FontStyl e = "bold"Ole_1.Sheets(1).Columns("A:Z").HorizontalAlignment = -4108 //居中Ole_1.Application.SaveSetPointer(Arrow!)Ole_1.Application.QuitIf Ole_1.DisconnectObject() < 0 thenMessagebox(" 岿粇 "," 娩钡岿 ")elseli_rt1=1End ifelsemessagebox("Note","Export EXCEL Unsuccessful!")returnend ifif li_rt1 = 1 thenmessagebox("Note","Export EXCEL Successful!")end ifif IsValid(Ole_1) thenDestroy Ole_1end ifSetPointer(Arrow!)∙打开Word文件OLEObject OLEWordOLEWord = Create OLEObjectIF OLEWord.ConnectToNewObject(“Word.Application”) <> 0 THENDESTROY OLEWordMessageBox(“”,”启用Word失败。

相关文档
最新文档