1. 首页

pb从excel导入

pb导入excel死机

pb导入excel死机

1. 在PB中,把数据窗口导入到excel

第一个,导出的问题,可以通过数据窗口来完成,你把数据窗口的查询语法设置为从两个表查询就行了。然后使用数据窗口的saveas函数,保存为xls格式,就导出到excel中了。

另外也可以通过DB画板,在ISQL SESSION页里面自己写查询语句,查询出结果后,然后在查询出结果的地方点右键选择save rows as。,然后自己选保存格式,选择csv格式就可以导入到表格了。

第二个问题没太明白您的意思,是要把一个字段的内容放到dropdownlistbox控件中还是下拉数据窗口中?还是把这个字段本身作为内容放到下拉中?

如果是下拉数据窗口很简单,直接做一个子数据窗口显示要下拉的内容就可以了。

如果是放到ddlb当中,那么你可以先做一个子数据窗口,然后通过for循环逐行给ddlb增加内容,或者使用游标给ddlb逐个增加。使用ddlb_1.additem(内容)这个函数就行。

2. PB中导出EXCEL请教

你的数据是否是在数据窗口中的?如果是数据窗口中,使用PB自带的SAVEAS功能非常快的。

举个小列子,比如有个按钮叫导出,导出窗口中dw_1数据窗口的数据

string ls_path, ls_file

integer li_rc, li_ret

li_rc = getfilesavename("选择文件",ls_path,ls_file,"XLS","Excel Files (*.xls),*.xls, *.*")

if li_rc <> 1 then return

dw_1.SaveAs(ls_path,Excel!,TRUE)

3. 如何用pb做将excel表格导入pb数据窗口的程序

这个是直接导入的。

还有一种方法,就是逐行逐列读取excel表格,这个方法效率不高,但是有个好处就是excel的数据文件和数据窗口不要求对应,就相当于excel是一个数据窗口,从这里取值,赋值到目标数据窗口一样的操作。如果你需要我也可以帮你写一个例子。

先传一个直接导入的:这种导入要求excel和数据窗口的字段对应。OLEObject ExcelServerlong excelokstring str_savenamestring str_filenamestring named integer value value = GetFileOpenName(";打开文件",str_filename, named, "DOC", & ";文本文件 (*.TXT),*.TXT," & + "EXCEL 文件 (*.XLS),*.XLS,"+"EXCEL 文件 (*.XLSX),*.XLSX") if value = 1 thenExcelServer = CREATE OLEObjectExcelOK = ExcelServer.ConnectToNewObject( "excel.application" )if excelok < 0 thenmessagebox(";连接excel失败,检查你的系统是否安装了office",string(excelok))return elsedw_1.reset()ExcelServer.Workbooks.Open(str_filename)str_savename="c:\temp.txt"excelserver.activeworkbook.saveas(str_savename,3)excelserver.displayalerts=falseExcelServer.quit()ExcelServer.DisconnectObject()DESTROY ExcelServer dw_1.ImportFile(str_savename)filedelete(str_savename)end ifend if。

4. pb 导出excel

不用重谢。

累加到前面导出的后面关键是找到上次导出的最大行数。

具体代码如下:

OLEObject xlapp , xlsub //定义对象名

integer cnt

xlApp = Create OLEObject //创建对象

xlApp.ConnectToNewObject( "Excel.Sheet" ) //连接到EXCEL

xlApp.Application.Workbooks.Open("XXX.xls") //打开EXCEL文件

cnt=xlapp.Application.ActiveWorkbook.Worksheets[2].UsedRange.Rows.Count //获得最大行

integer numcols,numrows,c,r

numcols = dw_1.Object.DataWindow.Column.Count //获得当前数据窗口的最大列数

numrows = dw_1.RowCount() //获得当前数据窗口的最大行数

For c = 1 to numcols

For r = 1 to numrows

xlsub.cells[cnt+1,c] = dw_1.object.data[r,c] //从cnt+1行开始粘贴数据窗口的数据

Next

Next

本文来自投稿,不代表本站立场,如若转载,请注明出处。