打印本文 打印本文 关闭窗口 关闭窗口
将数据窗口保存为完整的Excel表格
作者:武汉SEO闵涛  文章来源:敏韬网  点击数658  更新时间:2009/4/22 23:21:07  文章录入:mintao  责任编辑:mintao
  在很多的情况下,我们需要将书局窗口中的数据保存为其他应用程序的格式(比如: MS Excel, Word, email 等).为此Powerbuilder提供了SaveAs函数,然而使SaveAs保存数据窗口为Execl格式时有一些缺点,就是它无法保存我们所见到的格式,一些图形、交叉报表、计算域等等都被丢弃,它仅仅保存了数据窗口buffer中的数据。为了输出交叉报表、组、和计算域等等可视的数据, PowerBuilder 6.5 (after build 444) 提供了新的函数解决这些缺陷,它是:SaveAsAscii()函数。它允许输出数据窗口的可视部分为文本格式,组、交叉报表、计算域等被保存为输出数据的一部分。下面讨论该函数:

  描述:将数据窗口或数据存储中的内容保存为ASCII文本文件

  适用于:数据窗口和 DataStore对象

  符号:

  dwcontrol.SaveAsAscii ( filename {, separatorcharacter {, quotecharacter {, lineending } } } )

  其中:

dwcontrol 位数据窗口或DataStore的名字

filename :要保存的文件名;

separatorcharacter (optional) :分割各个数据的字符串,缺省为tab

quotecharacter (optional) :包围值的字符串,缺省为空;

lineending (optional) :放在每行末尾的字符串,缺省为回车 character (~r~n)

  下面的例子显示将数据窗口中的数据保存到文件monthly.txt,每个数据以'|' 分割
dw_4.saveasascii("monthly.txt","|")

  在数据之间使用分割符是比较好的注意,因为缺省的tab字符可能会在导入excel时出问题。在导入Excel时他会提示您,您数据中使用何种分割符。

  为了导入到 Excel, 只需在中Excel打开文件,您可能会看到一个wizard窗口 定义正确的分割符即可。下例显示一个用saveasascii()函数导出的文件,使用SaveAs函数时是不可能有如此结果的。

Dept Id
Manager Id 100 200 300 400 500
501 1090
703 868
902 1039 1576
1293 902 1390
1576 1191

下例显示SaveAsAscii保存数据窗口的完整的 groupings, headers, and footers.并且还有累计行: 


Employee
ID" Last Name
Department 100
1090 Smith
582 Samuels
529 Sullivan
479 Siperstein
266 Gowda
604 Wang
453 Rabkin
445 Lull
316 Pastor
1250 Diaz
102 Whitney
1157 Soo
247 Driscoll
160 Breault
501 Scott
958 Sisson
243 Shishov
862 Sheffield
105 Cobb
249 Guevara
839 Marshall
278 Melkisetian
22 Employees in Department 100
Department 500
191 Bertrand
1013 Barker
921 Crowley
868 Kuo
1658 Lynch
1615 Romero
750 Braun
1570 Rebeiro
703 Martinez
9 Employees in Department 500
Total Employees >> 75

  另外:如果要在excel中空出某些格,只需在设计dw时在字段间增加空的文本即可。

  使用SaveAsAscii()函数不仅用于 Excel,因为它将数据保存为文本格式,所以它和任何其他的程序交换数据都变得非常容易。

打印本文 打印本文 关闭窗口 关闭窗口