标题:请教PB大哥一个问题!
只看楼主
dailyavc
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-3-15
 问题点数:0 回复次数:1 
请教PB大哥一个问题!

我有段PB的代码,每次只能读取Excel的一个表,现在我想让它读取一个Excel文件中的每张表,不知如何修改,请大哥帮忙谢谢!if is_filename = '' then
Getfileopenname("Select ASN File", is_filename, ls_dummy, &
"XLS", "EXCEL Files (*.XLS), *.XLS")
end if
if is_filename='' or isnull(is_filename) then
return -1
end if


Ole_object = CREATE OLEObject
IF Ole_object.ConnectToObject("","Excel.Application") <> 0 THEN
IF Ole_object.ConnectToNewObject("Excel.Application")<>0 THEN
MessageBox('OLE Error','OLE Can not connect!')
Return 0
END IF
END IF
Ole_object.Workbooks.Open(is_filename)


//get the all cell and set on the datawindow
if isnull(string(Ole_object.activesheet.cells(1,1).value)) = true then
Messagebox('Erroe','File is null,please check it!')
end if
for i = 1 to 65527
if isnull(string(Ole_object.activesheet.cells(i,1).value)) = true then
ll_row_excel = i - 1
exit;
end if
next
for i = 1 to ll_row_excel
ls_To_Lot = string(ole_object.ActiveSheet.Cells(i,1).value)
ls_Mother_Lot = string(ole_object.ActiveSheet.Cells(i,3).value)

IF ls_date = ls_compare_date THEN
ll_rowcount = tab_main.tabpage_cp.dw_cp.insertrow(0)
tab_main.tabpage_cp.dw_cp.Setitem(ll_rowcount,'Subcon_Code','JG')
tab_main.tabpage_cp.dw_cp.Setitem(ll_rowcount,'Process_Code','CP')
tab_main.tabpage_cp.dw_cp.Setitem(ll_rowcount,'trans_date',date(ls_trans_date))
tab_main.tabpage_cp.dw_cp.Setitem(ll_rowcount,'trans_time',time(ls_trans_date))
END IF

next

Ole_object.Workbooks.close
Ole_object.DisConnectObject()
Destroy Ole_Object
RETURN

搜索更多相关主题的帖子: XLS filename Excel Ole 
2007-03-15 14:57
notbig
Rank: 2
等 级:新手上路
威 望:5
帖 子:208
专家分:0
注 册:2006-11-27
得分:0 

没有用过,但从网上找到两段代码你看看对你是否有帮助
1、得到Excel文件路径ls_pathname
GetFileOpenName("Select File", ls_pathname, ls_filename, "XLS", "Microsoft Excel Files (*.xls),*.xls")

2、创建OLE对象
OLEOBJECT myoleobject //定义变量
myoleobject=CREATE OLEOBJECT

3、关联OLE对象到Excel文件
myoleobject.ConnectToObject(ls_pathname)

4、通过OLE对象读取Excel文件数据
la_myvalue=myoleobject.application.workbooks(1).worksheets(1).cells(1,1).value
//Excel文件Sheet1的第1行第1列的值



----------------------------------------------------------
Q : pb 与 excel 交换数据时汉字显示不全的问题
主要解答者: flamefiredelphi 提交人: hgzhao
感谢: balloonman2002, ouyi2002
审核者: wu_07 论坛对应贴子: 查看
A :

在PB中引用Excel表各种的数据时出现如下问题:
int ret
oleobject xlapp,xlsub
ret=xlapp.connecttonewobject("excel.sheet")
if ret<0 then
messagebox("connect to excel failed!",string(ret))
return
end if
xlapp.application.workbooks.open("fullpathname")
xlsub=xlapp.application.activeworkbook.worksheets[1]
string temp1
temp1=xlsub.cells[4,2].value
从Excel单元格中取出的汉字只能显示前几个,如"北京火车站"显示为
"北京火",可能是因为在Excel中汉字作为一个字符,在PB中汉字
作为两个字符处理,所以长度不一致,不能完全将数据取出.请问各位
大虾如何处理?


http://www. email:notbig@ MSN:luozhihui@ ** QQ:2170913
2007-03-15 23:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-124408-1-1.html




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

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