帮忙看一下哪里写错了?

Samoon 2008-10-15 10:20:17
Pb的datewindow 保存为Excel的语句,可是不知道哪里出错了,if语句里面的内容没有执行.无法达到保存效果.

代码如下:
string docname ,docname1
docname=string(F_nowdate) +"查"+"订单未做BOM列表"
docname1=docname+".xls"

oleobject loo_excel,loo_sheet

loo_excel = create oleobject
if loo_excel.ConnectToNewObject(docname1) = 0 then
setpointer(HourGlass!)
loo_excel.Application.Workbooks.Add()
loo_sheet = loo_excel.Application.ActiveWorkbook.Worksheets.add()
loo_sheet.name = "SAVEASTEST"
Clipboard("")
Clipboard(w_main.dw_1.describe('datawindow.data'))
loo_sheet.Paste()
Clipboard("")
loo_excel.Application.ActiveWorkbook.SaveAs(docname1, -4143)
loo_excel.quit()
loo_excel.disconnectobject()
setpointer(Arrow!)
messagebox("Export OK", "Finished!")

end if

destroy loo_sheet
destroy loo_excel
...全文
146 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
青锋-SS 2008-10-15
  • 打赏
  • 举报
回复

//需要先安装excel

OLEObject xlapp,xlsub
long ll_cols,ll_rows,ll_cnt1,ll_cnt2

xlapp = Create OLEObject
if xlapp.ConnectToNewObject("Excel.Sheet") < 0 then
MessageBox("Caption","Connection failed!")
return
end if
//ll_cols = long(adw_datastore.Object.DataWindow.Column.Count)
//ll_rows = adw_datastore.RowCount()
//xlapp.Application.WorkBooks.Open("C:\bm.xls") //可以指定路径打开文件
xlapp.Application.WorkBooks.Add
xlApp.Application.Visible = false
xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1] //指定第几个sheet
clipboard(dw_1.describe('datawindow.data')) //其实你把此处修改一下就可以达到你的要求
xlsub.paste() //其实你把此处修改一下就可以达到你的要求
xlapp.Application.ActiveWorkbook.saved = false
xlapp.Application.activeworkbook.saveas("c:\test.xls") //可以动态选择保存路径、名称
xlapp.Application.WorkBooks.Close()
xlapp.DisConnectObject()
Destroy xlapp
jaychensusu 2008-10-15
  • 打赏
  • 举报
回复
没有excel怎能导出去呢。
Samoon 2008-10-15
  • 打赏
  • 举报
回复
if xlapp.ConnectToNewObject("Excel.Sheet") < 0 then
MessageBox("Caption","Connection failed!")
return

这个条件达成了 出现了messagebox 是office问题?
Samoon 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sdhylj 的回复:]
C/C++ code
/*试试我的这个,有二个参数
adw_datastore 要导出数据的数据窗口名称
as_filename 文件名
*/
//将数据窗口内的数据写入Excel
OLEObject xlapp,xlsub
long ll_cols,ll_rows,ll_cnt1,ll_cnt2

xlapp = Create OLEObject
if xlapp.ConnectToNewObject("Excel.Sheet") < 0 then
MessageBox("Caption","Connection failed!")
return
end if
ll_cols = long(adw_datastore.Object.DataWindow.Colum…
[/Quote]

需要另存为excel而不是导入到excel.要建立一个新的excel文件
青锋-SS 2008-10-15
  • 打赏
  • 举报
回复

/*试试我的这个,有二个参数
adw_datastore 要导出数据的数据窗口名称
as_filename 文件名
*/
//将数据窗口内的数据写入Excel
OLEObject xlapp,xlsub
long ll_cols,ll_rows,ll_cnt1,ll_cnt2

xlapp = Create OLEObject
if xlapp.ConnectToNewObject("Excel.Sheet") < 0 then
MessageBox("Caption","Connection failed!")
return
end if
ll_cols = long(adw_datastore.Object.DataWindow.Column.Count)
ll_rows = adw_datastore.RowCount()
//xlapp.Application.WorkBooks.Open("C:\bm.xls") //可以指定路径打开文件
xlapp.Application.WorkBooks.Add
xlApp.Application.Visible = false
xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1] //指定第几个sheet
for ll_cnt1 = 1 to ll_cols
for ll_cnt2 = 1 to ll_rows
xlsub.cells[ll_cnt2,ll_cnt1] = adw_datastore.Object.Data[ll_cnt2,ll_cnt1]
next
next
xlapp.Application.ActiveWorkbook.saved = false
xlapp.Application.activeworkbook.saveas(as_filename) //可以动态选择保存路径、名称
xlapp.Application.WorkBooks.Close()
xlapp.DisConnectObject()
Destroy xlapp
zhangyh_136 2008-10-15
  • 打赏
  • 举报
回复
docname1路径中不存在,需要有文件!!
Samoon 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sjq521521 的回复:]
if loo_excel.ConnectToNewObject("Excel.Application") = 0 then
[/Quote]

原文的东西,没反应
Samoon 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sjq521521 的回复:]
if loo_excel.ConnectToNewObject("Excel.Application") = 0 then
[/Quote]

这个就是网上原文的。不行啊。莫非是我装的是openoffice的缘故?
原来用的这段:
OLEObject excel
excel = CREATE OLEObject
if excel.ConnectToObject(docname1) = 0 then
excel.application.DisplayAlerts = FALSE
excel.application.workbooks(1).Parent.Windows(excel.application.workbooks(1).Name).Visible = True
excel.application.workbooks(1).saveas(docname1, -4143)
excel.application.workbooks(1).close()
end if

DESTROY excel
也没反应了
Samoon 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sdhylj 的回复:]
if loo_excel.ConnectToNewObject("Excel.Sheet") >= 0 then
[/Quote]
=.=
sjq521521 2008-10-15
  • 打赏
  • 举报
回复
if loo_excel.ConnectToNewObject("Excel.Application") = 0 then
Samoon 2008-10-15
  • 打赏
  • 举报
回复
会不会是因为我没有装Excel?我们公司用的openoffice
青锋-SS 2008-10-15
  • 打赏
  • 举报
回复
if loo_excel.ConnectToNewObject("Excel.Sheet") >= 0 then
Samoon 2008-10-15
  • 打赏
  • 举报
回复
呃~卡了一下发了两条
Samoon 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdhylj 的回复:]
if loo_excel.ConnectToNewObject("Excel.Sheet") = 0 then
[/Quote]

依然没反应
Samoon 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdhylj 的回复:]
if loo_excel.ConnectToNewObject("Excel.Sheet") = 0 then
[/Quote]
依然没反应
青锋-SS 2008-10-15
  • 打赏
  • 举报
回复
if loo_excel.ConnectToNewObject("Excel.Sheet") = 0 then

743

社区成员

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

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