PB中如何将数据窗口中的数据导出成excel表,就是添加导出控件中的代码该如何编写!

2024-11-15 08:59:58
推荐回答(3个)
回答1:

用saveas()函数

例如,添加一个按钮,按钮的clicked()事件里写上(假设你的数据窗口叫dw_1):
if dw_1.rowcount() = 0 then return //--数据窗口里没有数据就直接返回,不响应操作
dw_1.saveas() //--弹出将数据窗口的数据保存成文件的提示窗口

这样就行了,当数据窗口有内容时,点那个按钮,就出现保存的提示窗口,可以选择保存的位置、文件类型、文件名称。

如果限制用户只能保存为excel,则可以这样:
dw_1.SaveAs("D:\abc.XLS", Excel!, TRUE) //--具体解释见下面

以下为书面引用:
====================================================================
dwcontrol.SaveAs ( { filename, saveastype, colheading } )

★dwcontrol:数据窗口控件名
★filename:可选参数,string类型,其值是用于保存数据窗口内容的文件的文件名。如果省略了filename参数或filename参数的值为空字符串(""),程序运行时,PowerBuilder将显示一个对话框,让用户输入或选择文件名。
★saveastype:可选参数,SaveAsType枚举数据类型,用于指定以何种方式保存数据窗口中的数据。
★colheading:可选参数,boolean类型,指示是否在文件的开头加上数据窗口列的标题。缺省值为TRUE,表示加列标题。该参数指定为FALSE时,表示不加列标题。

★★★ saveastype参数常用的有效取值为:
Clipboard!保存到剪贴板
CSV!以逗号分隔的形式保存数据
DIF! 保存为数据内部交换格式(Data Interchange Format)
Excel!保存为Microsoft Excel格式
HTMLTable!将数据保存为与数据窗口布局相对应的HTML格式
PSReport! 保存为Powersoft Report (PSR)格式
SYLK!保存为Microsoft Multiplan格式
Text! 缺省值,以每行用回车符结束、列之间使用Tab字符分隔的格式保存数据

回答2:

dw.saveasascii()
把数据窗口的内容都导出去,包括标题等

回答3:

BUTTON click事件
注意修改一下
OLEObject ole_object , ole_workbooks

ole_object = CREATE OLEObject
IF ole_object.ConnectToNewObject("Excel.Application") <> 0 THEN
MessageBox('OLE错误','OLE无法连接!')
return
END IF
ole_object.workbooks.add
ole_object.Visible = True
ole_workbooks = ole_object.Worksheets(1)
ole_workbooks.cells(1,1).value="姓名"
ole_workbooks.cells(1,2).value="性别"
long l_row
for l_row = 1 to dw_1.rowcount()
ole_workbooks.cells(l_row+1,1).value=dw_1.getitemstring(l_row,1)
ole_workbooks.cells(l_row+1,2).value=dw_1.getitemstring(l_row,2)

next
ole_workbooks.SaveAs ("d:\data.xls")
ole_object.quit()
Ole_Object.DisConnectObject()
Destroy Ole_Object
destroy ole_workbooks