快速保存数据窗口中的数据成文本和EXCEL格式?

A_G 2003-02-11 08:57:00
如果有几万条,怎样快速保存?有没有什么好的思路?
...全文
53 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
htp_htp 2003-02-11
  • 打赏
  • 举报
回复
saveas
saveasascii
liaolwj 2003-02-11
  • 打赏
  • 举报
回复
都可以的
A_G 2003-02-11
  • 打赏
  • 举报
回复
to shengjinbo(八爪鱼)
这样还是一条一条保存的,速度比较慢!

to liaolwj(风儿)
保存html可以把数据窗口中所有能看到的都保存下来吗?比如计算列,子数据窗口显示的当前列数据!
shengjinbo 2003-02-11
  • 打赏
  • 举报
回复
我从别的地方找过这个函数,增加一个取得显示值的语句,无偿送你
注意两个参数,一个是datawindow型,一个是string型。

/**********************************************
* 函数名称: changexecl(datawindow,tile) *
* 函数用法:datawindow为要转化的数据窗口; *
* tile为数据窗口的标题。 *
* 举例:changexecl(dw_1,"这是我们的世界") *
* li0827@163.com 2002/6/15 *
**********************************************/

long numcols , numrows , c, r
OLEObject xlapp , xlsub
int ret,coli
string colname,colname1
//datawindow dw_data1
//dw_data1 = dw_data

numcols = long(dw_data.Object.DataWindow.Column.Count)
numrows = dw_data.RowCount()

xlApp = Create OLEObject

ret = xlApp.ConnectToNewObject( "Excel.application" )
if ret < 0 then
MessageBox("Connect to Excel Failed !",string(ret))
return
end if

xlApp.Application.Workbooks.add()

xlApp.Application.Visible = true

xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1]

string colnum //判断是A、B...或AA、AB...还是BA、BB、BC...
if integer(numcols) > 26 then
string colnumd,colnumd1
int numcols1,numcols2
numcols1 = mod(numcols,26)
numcols2 = numcols / 26
colnumd = char(numcols1 + 96)
colnumd1 = char(numcols2 + 96)
colnum ="'" + colnumd1 + colnumd + "'"
else
colnum = char(numcols + 96)
end if

xlsub.cells[1,1] = tabname //标题
xlsub.cells[1,1].HorizontalAlignment = 3
xlsub.cells[1,1].VerticalAlignment = 3
xlsub.cells[1,1].Font.Size = 20
xlsub.range("a1:" + colnum + "1").Merge()

string ls_colname,ls_colname1
integer i
for i = 1 to numcols
//得到标题头的名字
ls_colname1 = dw_data.describe('#' + string(i) + ".name")
ls_colname = ls_colname1 + "_t"
xlsub.cells[2,i] = dw_data.describe(ls_colname + ".text")
For r = 1 to numrows
// xlsub.cells[r + 2,i] = dw_data.object.data[r,i] 导出字段值
xlsub.cells[r + 2,i] =

dw_data.describe("Evaluate('Lookupdisplay("+ls_colname1+")',"+string(r)+")") //导出字段的显示值

,对ddw等有特效
Next
next
//画表格线
string ls_range
ls_range = "A2:" + colnum + Trim(string(numrows+2))
xlsub.range(ls_range).borders(1).linestyle = 1
xlsub.range(ls_range).borders(2).linestyle = 1
xlsub.range(ls_range).borders(3).linestyle = 1
xlsub.range(ls_range).borders(4).linestyle = 1

xlapp.Application.ActiveWorkbook.saved = false

xlApp.DisConnectObject()
Destroy xlapp
liaolwj 2003-02-11
  • 打赏
  • 举报
回复
可以先保存为html,然后再用excel转换
A_G 2003-02-11
  • 打赏
  • 举报
回复
就是因为数据比较多,用一行一行速度比较慢
A_G 2003-02-11
  • 打赏
  • 举报
回复
saveas 不能保存计算列!有没有其他方法
liaolwj 2003-02-11
  • 打赏
  • 举报
回复
转入excel如果数据少还可以逐行处理,但文本则没有办法
A_G 2003-02-11
  • 打赏
  • 举报
回复
还有没有其他的?
xiaobzg 2003-02-11
  • 打赏
  • 举报
回复
saveas()最快
liaolwj 2003-02-11
  • 打赏
  • 举报
回复
数据窗口中saveas()速度比较快

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧