您的位置:首页 > 其它

控制多个datawindow数据合并成一个excel导出【PB】

2014-02-14 11:44 465 查看
最近项目需要,需要把多个datawindow的数据合并成一个excel导出。本地项目没有其他代码借鉴,自己接触PB顶多3个月时间,而网上关于PB的消息少之又少。前些日子在powerbuilder论坛发个帖子求组,幸运得到powerbuilder版主和一位热心网友提示,通过自己不断地coding and debug, 我想要的效果终于得到了,:-)

现在我把源码贡献出来,大家一起学习,欢迎和我交流。

string ls_path, ls_file
double ll_len_path, ll_len_file
int li_rc
Long j

if dw_preview.RowCount() > 0 then

li_rc = GetFileSaveName ( "Select File", ls_path, ls_file, "XLS", "Excel Files (*.XLS), *.XLS,All Files (*.*)" , "", 32770)
//get the filename from user
ll_len_file=LastPos(ls_file,'.')

if li_rc = 1 then

OLEObject	l_oleobject_excel
l_oleobject_excel = CREATE OLEObject
l_oleobject_excel.ConnectToNewObject('excel.application')
l_oleobject_excel.Visible = False

//rename
l_oleobject_excel.Workbooks.add()
ls_file=left(ls_file, long(ll_len_file)-1)+'_1'
l_oleobject_excel.workbooks(1).worksheets(1).name = ls_file
ls_file=left(ls_file, long(ll_len_file)-1)+'_2'
l_oleobject_excel.workbooks(1).worksheets(2).name = ls_file
ls_file=left(ls_file, long(ll_len_file)-1)+'_3'
l_oleobject_excel.workbooks(1).worksheets(3).name = ls_file

//insert data from dw to sheet1
for j=1 to dw_saveas_sku_alias.rowcount()
//header
l_oleobject_excel.workbooks(1).worksheets(1).cells(j,1).value = 'sku'
l_oleobject_excel.workbooks(1).worksheets(1).cells(j,2).value = 'alias'
l_oleobject_excel.workbooks(1).worksheets(1).cells(j,3).value = 'desc'
l_oleobject_excel.workbooks(1).worksheets(1).cells(j,4).value = 'default_alias'
l_oleobject_excel.workbooks(1).worksheets(1).cells(j,5).value = 'pack_wt'
l_oleobject_excel.workbooks(1).worksheets(1).cells(j,6).value = 'net_wt'
//detail
l_oleobject_excel.workbooks(1).worksheets(1).cells(j+1,1).value = dw_saveas_sku_alias.object.sku_alias_sku[j]
l_oleobject_excel.workbooks(1).worksheets(1).cells(j+1,2).value = dw_saveas_sku_alias.object.sku_alias_sku_alias[j]
l_oleobject_excel.workbooks(1).worksheets(1).cells(j+1,3).value = dw_saveas_sku_alias.object.sku_alias_alias_desc[j]
l_oleobject_excel.workbooks(1).worksheets(1).cells(j+1,4).value = dw_saveas_sku_alias.object.sku_alias_default_alias[j]
l_oleobject_excel.workbooks(1).worksheets(1).cells(j+1,5).value = dw_saveas_sku_alias.object.sku_alias_pack_wt[j]
l_oleobject_excel.workbooks(1).worksheets(1).cells(j+1,6).value = dw_saveas_sku_alias.object.sku_alias_net_wt[j]
next

//insert data from dw to sheet2
for j=1 to dw_saveas_sku_alias.rowcount()
//header
l_oleobject_excel.workbooks(1).worksheets(2).cells(j,1).value = 'sku'
l_oleobject_excel.workbooks(1).worksheets(2).cells(j,2).value = 'alias'
l_oleobject_excel.workbooks(1).worksheets(2).cells(j,3).value = 'desc'
l_oleobject_excel.workbooks(1).worksheets(2).cells(j,4).value = 'default_alias'
l_oleobject_excel.workbooks(1).worksheets(2).cells(j,5).value = 'pack_wt'
l_oleobject_excel.workbooks(1).worksheets(2).cells(j,6).value = 'net_wt'
//detail
l_oleobject_excel.workbooks(1).worksheets(2).cells(j+1,1).value = dw_saveas_sku_alias.object.sku_alias_sku[j]
l_oleobject_excel.workbooks(1).worksheets(2).cells(j+1,2).value = dw_saveas_sku_alias.object.sku_alias_sku_alias[j]
l_oleobject_excel.workbooks(1).worksheets(2).cells(j+1,3).value = dw_saveas_sku_alias.object.sku_alias_alias_desc[j]
l_oleobject_excel.workbooks(1).worksheets(2).cells(j+1,4).value = dw_saveas_sku_alias.object.sku_alias_default_alias[j]
l_oleobject_excel.workbooks(1).worksheets(2).cells(j+1,5).value = dw_saveas_sku_alias.object.sku_alias_pack_wt[j]
l_oleobject_excel.workbooks(1).worksheets(2).cells(j+1,6).value = dw_saveas_sku_alias.object.sku_alias_net_wt[j]
next

//insert data from dw to sheet3
for j=1 to dw_saveas_sku_alias.rowcount()
//header
l_oleobject_excel.workbooks(1).worksheets(3).cells(j,1).value = 'sku'
l_oleobject_excel.workbooks(1).worksheets(3).cells(j,2).value = 'alias'
l_oleobject_excel.workbooks(1).worksheets(3).cells(j,3).value = 'desc'
l_oleobject_excel.workbooks(1).worksheets(3).cells(j,4).value = 'default_alias'
l_oleobject_excel.workbooks(1).worksheets(3).cells(j,5).value = 'pack_wt'
l_oleobject_excel.workbooks(1).worksheets(3).cells(j,6).value = 'net_wt'
//detail
l_oleobject_excel.workbooks(1).worksheets(3).cells(j+1,1).value = dw_saveas_sku_alias.object.sku_alias_sku[j]
l_oleobject_excel.workbooks(1).worksheets(3).cells(j+1,2).value = dw_saveas_sku_alias.object.sku_alias_sku_alias[j]
l_oleobject_excel.workbooks(1).worksheets(3).cells(j+1,3).value = dw_saveas_sku_alias.object.sku_alias_alias_desc[j]
l_oleobject_excel.workbooks(1).worksheets(3).cells(j+1,4).value = dw_saveas_sku_alias.object.sku_alias_default_alias[j]
l_oleobject_excel.workbooks(1).worksheets(3).cells(j+1,5).value = dw_saveas_sku_alias.object.sku_alias_pack_wt[j]
l_oleobject_excel.workbooks(1).worksheets(3).cells(j+1,6).value = dw_saveas_sku_alias.object.sku_alias_net_wt[j]
next

//save as excel
l_oleobject_excel.ActiveWorkbook.SaveAs(ls_path)
l_oleobject_excel.Application.DisplayAlerts = False
l_oleobject_excel.workbooks.Close()
l_oleobject_excel.Quit
l_oleobject_excel.DisconnectObject ( )
DESTROY l_oleobject_excel

end if
end if
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: