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

本文介绍如何使用PowerBuilder将多个DataWindow对象的数据合并并导出到同一个Excel文件中。通过创建Excel应用程序对象,逐个填充工作表,并保存为指定路径的Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近项目需要,需要把多个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	 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值