PB从EXCEL中导入数据窗口的函数

合集下载

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数据窗口常用函数方法

PB数据窗口常用函数方法

PB数据窗口常用函数方法1. Retrieve函数:用于从数据库中检索数据,可以通过设置检索条件过滤数据。

例如,dw_employee.Retrieve(将从数据库中检索出所有的员工数据。

2. Update函数:用于更新数据窗口中的数据到数据库中。

例如,dw_employee.Update(将更新数据窗口中的所有修改到数据库中。

3. Create功能:用于创建一个新的数据行。

例如,dw_employee.Create(将在数据窗口中新增一行空数据。

4. Modify功能:用于修改数据窗口中的数据。

例如,dw_employee.Modify(将允许用户进行修改操作。

5. InsertRow函数:用于在数据窗口中插入一行数据。

例如,dw_employee.InsertRow(1)将在第一行之前插入一行数据。

6. DeleteRow函数:用于删除数据窗口中的一行数据。

例如,dw_employee.DeleteRow(2)将删除第二行的数据。

7. SetItem函数:用于设置数据窗口中指定列的值。

例如,dw_employee.SetItem(1, "John")将设置第一列的值为"John"。

8. GetItem函数:用于获取数据窗口中指定列的值。

例如,string ls_name = dw_employee.GetItemString(1)将获取第一列的值并赋给ls_name变量。

9. GetRowCount函数:用于获取数据窗口中的行数。

例如,intli_rows = dw_employee.GetRowCount(将返回数据窗口中的行数。

10. GetColumnCount函数:用于获取数据窗口中的列数。

例如,int li_columns = dw_employee.GetColumnCount(将返回数据窗口中的列数。

11. GetRow函数:用于获取数据窗口中指定行的数据。

OLE操作EXCEL

OLE操作EXCEL
case -1
messagebox('错误提示','无效的调用')
case -2
messagebox('错误提示','类名没发现')
case -3
messagebox('错误提示','对象不能创建')
case -4
messagebox('错误提示','文件不能连接')
case -5
//合并一个excel文件
string ls_ran
ls_ran = "B6:M"+string(ld_1+1)
obook1 = xlApp.Application.Workbooks.Open(ls_file2)
xlsub1 = xlapp.Application.ActiveWorkbook.Worksheets[1]
37.打印输出工作表
eole.ActiveSheet.PrintOut
38.工作表另为
eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)
39.放弃存盘
eole.ActiveWorkbook.saved=.t.
40.关闭工作簿
eole.ActiveSheet.PageSetup.PrintGridlines=.t.
26.拷贝整个工作表
edRange.Copy
27.拷贝指定区域
eole.ActiveSheet.Range(″A1:E2″).Copy
xlsub1.Range(ls_ran).Copy() //把所选内容复制到内存中

pb与excel之间导入导出处理

pb与excel之间导入导出处理

pb与excel之间导入导出处理gf_save_excel_to_txt(as_excel_filename string,as_text_filename string)//把文件名为as_excel_filename的Excel文件另存为文件名为as_text_filename 的Text文件//返回:另存是否成功//删除Text文件If DeleteFile(as_text_filename) Then//删除存在的Text文件成功OLEObject l_olel_ole = Create OLEObject;If l_ole.ConnectToNewObject("Excel.Application") = 0 Then//连接到Excell_ole.Application.DisplayAlerts = False //关闭警告消息对话框,防止退出Excel时提示l_ole.Application.Workbooks.Open(as_excel_filename) //打开Excel文件l_ole.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158) //把打开的Excel文件另存为Text文件,第二参数表示数据以制表符TAB分隔l_ole.Application.Quit() //退出ExcelElseMessagebox(\'错误\',\'无法建立与Excel的连接!\',StopSign!)Destroy l_oleReturn FalseEnd IfDestroy l_oleReturn TrueElse//无法删除Text文件Return FalseEnd If保存excel文件:要想选择目录可以这样string ls_docname, ls_named //文件路径,文件名integer li_rtli_rt = GetFileSaveName("选择保存路径并输入保存文件名" + string(jj),ls_docname, ls_named, &"Excel", &"Excel Files (*.XLS),*.XLS," + &" TXT Files (*.TXT),*.TXT")if li_rt = 1 then//转存dw_x.saveasascii(ls_docname,"~t","") end if。

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从excel读数据

pb从excel读数据

pb从excel读数据实现通过PB来读取excel中某一行某一列的数据。

我在相关论坛上找到了一个例子,但其中的怎么申明,怎么调用还不太明白,例子如下:读excel的代码:ole1.workbooks.open(ls_pathname,0,0)ole1.visible = true//获取EXCEL单元格数据ls_cell = ole1.workbooks[1].worksheets[1].cells(ll_rowno,ll_colno).value各位可否通过一个实例进行说明呢?谢谢了!NO.1 作者:Hanson_bati_zhu试试看这个是用PB自带的例子改的integer resultOLEObject myoleobjectmyoleobject = CREATE OLEObjectresult = myoleobject.ConnectToObject("现有的EXCEL文件名")IF result = 0 THENMessageBox(,String(myoleobject.application.workbooks(1).worksheets(1).cells(行号,列号).value))END IFmyoleobject.DisconnectObject()DESTROY myoleobjectNO.2 作者:xiaozhigood上面的写的太仓促你可以看这个就可以了//从excel文件获得数据//建立从EXCEL表获取数据的通道OLEObject ole1ole1= CREATE OLEObjectresult=ole1.ConnectTonewObject("Excel.application")if result<>0 thenmessagebox("提示!","连接Excel表出错,请重新选择")returnend if//操作员选择要导入数据的EXCEL文件ll_rtn = getfileopenname(打开文件,ls_pathname,ls_filename,XLS,EXCEL文件(*.xls),*.xls) if ll_rtn<>1 thenmessagebox("提示!","连接Excel表出错,请重新选择")returnend ifole1.workbooks.open(ls_pathname,0,0)ole1.visible = truell_rowno=1 ‘列ll_colno=1 ’行do while ole1.workbooks[1].worksheets[1].cells(ll_rowno,1).value‘判断是否有数据do while ole1.workbooks[1].worksheets[1].cells(ll_rowno,ll_colno).value‘取数据ls_cell = string(ole1.workbooks[1].worksheets[1].cells(ll_rowno,ll_colno).value) s_cpxx[ll_rowno,ll_colno]=ls_cellll_colno=ll_colno+1loopll_rowno=ll_rowno+1loopole1.visible = false‘关闭ole1.workbooks.close()‘销毁destroy ole1。

pb 和excel 如何连接

pb 和excel 如何连接两种方法OLE//连接Excelole_excel= CREATE OLEObjectIF ole_excel.ConnectTonewObject("Excel.application") <> 0 Then MessageBox("","连接Excel失败!")END IFole_excel.workbooks.open(ls_filepath,0,FALSE)Li_CountRows = ole_excel.ActiveCell.CurrentRegion.Rows.CountLi_CountColumns= ole_excel.ActiveCell.CurrentRegion.Columns.Countdw_excel.reset()ole_excel.visible = FALSE// 获取EXCEL单元格数据FOR Li_Row = 3 to Li_CountRowsLl_NewRow = dw_excel.insertrow(0)FOR Li_column = 1 to Li_CountColumnsls_cell = Ole_excel.Workbooks[1].Worksheets[1].Cells(Li_Row,Li_column).Value IF ISNULL(Ls_Cell) Then Ls_Cell = ''//插入数窗IF Ll_NewRow > 0 Thendw_excel.Setitem(Ll_NewRow,Li_column,ls_cell)END IFEND FOREND FOR//断开连接ole_excel.Quit()ole_excel.DisConnectObject()Destroy Ole_excel还可以用DDEstring s_regiondata[3]handle = OpenChannel("Excel", "REGION.XLS", &Handle(w_ddewin))GetRemote("R1C2", s_regiondata[1], handle, &Handle(w_ddewin))GetRemote("R1C3", s_regiondata[2], handle, &Handle(w_ddewin))GetRemote("R1C4", s_regiondata[3], handle, &Handle(w_ddewin))CloseChannel(handle, Handle(w_ddewin))方法2long numcols , numrows , c, rOLEObject xlapp , xlsubint ret//定义变量numcols = long(dw_product.Object.DataWindow.Column.Count)//设置行号和列号numrows = dw_product.RowCount()//获得行数xlApp = Create OLEObject//创建OLE对象ret = xlApp.ConnectToNewObject( "Excel.Sheet" )if ret < 0 thenMessageBox("连接Excel程序失败!",string(ret))returnend if//连接Excel,并检验返回值xlApp.Application.Workbooks.Open("E:\PB9\第八篇使用高级控件\实例81\useOLE.xls") //打开一个特定的Excel文件xlApp.Application.Visible = true//使该Excel文件可视xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1]//确定第一个工作簿For c = 1 to numcolsFor r = 1 to numrowsxlsub.cells[r,c] = dw_product.object.data[r,c]NextNext//循环发送数据xlApp.DisConnectObject()Destroy xlapp//断开连接。

关于pb6.5实现窗口导入excel文件的方法


//导入结束,提示导入条数
Long ll_ImportResult
ll_ImportResult = dw_1.rowcount()
gf_msg('读入成功!共读出' + string(ll_ImportResult) + '条记录。' 111)
RETURN ll_ImportResult
//如果没有根据返回值给出相应的报错信息
If li_ConnectErr< 0 Then
Choose Case li_ConnectErr
Case -1
MessageBox('错误提示''无效的调用')
Case -2
Case -8
MessageBox("错误提示""服务器不能装载选择的文件")
Case -9
MessageBox("错误提示""其他错误")
End Choose
Return -1
OLEobxxxxject ExcelServer
Int li_ConnectErr
ExcelServer =Create OLEobxxxxject
//是否有excel应用
li_ConnectErr =ExcelServer.ConnectToNewobxxxxject( "excel.application" )
dw_1.ImportClipboard(2)//导入数据需要标题
ExcelServer.Application.activeworkbook.Close(False)

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-窄行8511 39-宽行1411) 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的数据窗口操作

Composite 复合报表型的.就是可以由几个DW组合成的Crosstab 交叉报表型. 这个很少用.Freeform 自由风格,就是里面的列可以自已改变的. 常用Graph 统计图,你知道的Grid 网格,类似EXCEL的最常用Group 分组的.有分组小计要用的那种常用Label 标签的就是一个大格子一个大格子排列显示的那种N-Up 分栏显示的.这个少用.Tabular 列表的,这个列表不是太好用.这个也少用★SetTransObject语法:dwcontrol.SetTransObject ( transaction )功能:给数据窗口或者datastore控件dwcontrol设置事务对象transaction,缺省事务对象是SQLCA。

返回值:成功设置事务对象则返回1,执行过程中发生了错误则返回-1,有任意参数为Null时返回Null。

★Retrieve语法:dwcontrol.Retrieve ( {, argument, argument . . . } )功能:使用数据窗口控件的当前事务对象检索数据库中的数据。

如果数据窗口控件对应的数据窗口对象定义了检索参数,则应该在该函数中指定检索参数,参数的个数和数据窗口对象的检索变量个数相等,对应的数据类型相兼容。

返回值:返回数据窗口控件主缓存区(PrimaryBuffer)中的记录数,如果检索数据时发生错误则返回-1,如果任意参数为Null则返回Null*该函数的参数和数据窗口对象定义的参数的顺序要相同,类型要兼容。

个数不能少于数据窗口对象定义的参数,即可以等于和多于数据窗口对象定义的参数,多的参数忽略。

★DeleteRow语法:dwcontrol.DeleteRow ( row )功能:删除数据窗口dwcontrol中的第row行数据,如果row为0则表示删除当前行的数据。

返回值:执行成功则返回1,执行错误则返回-1,如果任意参数为Null则返回Null。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档