hur.cn - 华软网

 热门搜索

100分求dw2xls(for PB10)

  作者:未知    来源:网络    更新时间:2019/4/16
请有dw2xls的朋友把好东西共享,万分谢谢
邮箱:Liuyinbo0109@163.com
谢谢!
------华软网友回答------
偶也想要一个...

mike-qi@163.com
谢谢先
------华软网友回复------
cfc_exceltodw(datawindow adw, string excelname)
参数是导出的dw和excel资料的完整路径

OLEObject ole_object
ole_object = CREATE OLEObject
integer li_ret1,value
string named

li_ret1 = ole_object.ConnectToObject("","Excel.Application")
IF li_ret1 = 0 THEN 
value = MessageBox("提醒", "你已打开Excel(注意保存),关闭吗?", Question!, YesNo!)
if value = 1 then
ole_object.quit()
ole_object.disconnectobject()
else
return 0
end if
end if

value = GetFileOpenName("Select File", excelname, named, "XLS", "Excel Files (*.XLS),*.XLS")
if value<>1 then 
return 0
end if

li_ret1 = ole_object.ConnectToNewObject("Excel.Application")
if li_ret1 <>0 then
MessageBox('提醒','OLE没法连接Execl!')
return 0
end if

openwithparm(w_daopop,1)
w_daopop.st_2.text='正在准备......'

ole_object.workbooks.open(excelname)
int rtn,i,j

long ll_colnum,ll_rownum
string ls_value

string ls_objects,ls_obj,ls_objs[],ls_objtag[]
long ll_pos,ll_len,ll_num = 0,ll_obj[]

ls_objects = trim(adw.Describe('datawindow.Objects'))+"~t"

do while (pos(ls_objects,"~t") > 0)
ll_pos = pos(ls_objects,"~t")
ll_len = ll_pos - 1
ls_obj = left(ls_objects,ll_len)
if (adw.Describe(ls_obj + '.type') = 'column' or adw.Describe(ls_obj + '.type') = 'compute') and (adw.Describe(ls_obj + '.band') = 'detail') and (ls_obj <> "asd") then
ll_num += 1
ls_objs[ll_num] = ls_obj
ls_objtag[ll_num] = adw.Describe(ls_obj + '_t.text')
end if
ls_objects = right(ls_objects,len(ls_objects) - ll_pos)
loop

string str,strtype
j=1
getremote("r1c1",str,"excel",excelname)
str= lower(left(trim(str),len(str)-2))
if len(str)=0 then
messagebox("毛病","没有表头数据!")
ole_object.quit()
ole_object.disconnectobject()
destroy ole_object
close(w_daopop)
return 0
end if

do while len(str)>0
i=1
do while lower(trim(ls_objtag[i])) <> str
   i= i+1
if i > ll_num then
messagebox("毛病","没有找到"+str+"列!")
ole_object.quit()
ole_object.disconnectobject()
destroy ole_object
close(w_daopop)
return 0
end if
loop
ll_obj[j]=i
j=j + 1
getremote("r1c"+string(j),str,"excel",excelname)
str= lower(left(trim(str),len(str)-2))
loop
ll_num = j - 1
i=2
getremote("r"+string(i)+"c1",str,"excel",excelname)
str= left(str,len(str)-2)
do while len(str)>0
ll_rownum=adw.insertrow(0)
w_daopop.st_2.text='正在导入第'+string(i - 1)+'条记录......'
for j=1 to ll_num
getremote("r"+string(i)+"c"+string(j),str,"excel",excelname)
str= left(str,len(str)-2)
strtype = adw.Describe( ls_objs[ll_obj[j]] + '.coltype')
ll_pos = pos(strtype,"(")
if ll_pos<>0 then strtype=left(strtype,ll_pos - 1)
CHOOSE CASE strtype
CASE 'number','decimal','long'
adw.setitem(ll_rownum,ll_obj[j],dec(str))
case 'date'
adw.setitem(ll_rownum,ll_obj[j],date(str))
case 'datetime'
adw.setitem(ll_rownum,ll_obj[j],datetime(date(str)))
CASE ELSE
adw.setitem(ll_rownum,ll_obj[j],str)
END CHOOSE
next
i=i+1
getremote("r"+string(i)+"c1",str,"excel",excelname)
str= left(str,len(str)-2)
loop
ole_object.quit()
ole_object.disconnectobject()
destroy ole_object
close(w_daopop)
return 1
------华软网友回复------
赫赫,欠好意思,好像贴错了,贴的是excel to dw的, :D
------华软网友回复------
dw_1.SaveAs(ls_filesuggest, Excel!, true)
------华软网友回复------
出来了么???
------华软网友回复------
转的:
将DW数据窗口导出为EXCEL资料的方法(整理) 
http://www.chinaitpower.com/A/2002-11-21/41639.html

本文为摘自CSDN论坛帖子收集整理后汇总版本:

---2004年9月3日整理


------华软网友回复------

学习
------华软网友回复------
  class="deleted_message"> 该回复被版主删除
------华软网友回复------
自己改改pb9的就好了,我就是自己改的,很正常啊.如果谁不会改,给我发邮件,我给你zhaokaih@163.com      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。