如何将查询出来的数据导出到EXCEL表?

时间:2021-02-05 09:22:51
我用下面的代码把表grzh里面的bdyy等于1的人全部查询出来了,我现在想把查询出来的结果导出到EXCEL里面,请问应该怎么弄
CLOSE DATA
use grzh
set filt to bdyy=1
go top
if .not. eof()
   brow fiel  dwmc:h='单位名称',sbdm:h='社保代码',xm:h='姓名',jf_n:h="起始缴费_年",jf_y:h="起始缴费_月",jfy_b:h="本年缴费月",jfjs_b:h="本年缴费基数",bdyy:h='变动标识',BZ:H="变动备注"noedit title "查询新分学生"
   else
   RE=MESSAGEBOX("无此类人员!",0+48+256,"信息窗口")
endif
close data
return

11 个解决方案

#1


CLOSE DATA
use grzh
set filt to bdyy=1
COPY TO 导出文件名 for bdyy=1 xls
go top
if .not. eof()
   brow fiel  dwmc:h='单位名称',sbdm:h='社保代码',xm:h='姓名',jf_n:h="起始缴费_年",jf_y:h="起始缴费_月",jfy_b:h="本年缴费月",jfjs_b:h="本年缴费基数",bdyy:h='变动标识',BZ:H="变动备注"noedit title "查询新分学生"
   else
   RE=MESSAGEBOX("无此类人员!",0+48+256,"信息窗口")
endif
close data
return

#2


我是想先查询出来结果,然后另外有一个“导出”按钮,如果需要导出的就点“导出”按钮,然后选择保存的位置。不需要的就不导出。
不知道怎么实现。

#3


SELECT grzh
lcDelimFile = PUTFILE('', '导出的Excel表名', 'XLS')
IF EMPTY(lcDelimFile)
   RETURN
ENDIF
COPY TO (lcDelimFile) TYPE XL5

#4


感谢十豆三,上面的问题已经解决。
但是现在遇到一个新问题。就是显示查询出来的数据的时候,如果在项目管理器里面可以正常显示出来,但是当我把程序连编程可执行文件后,通过可执行程序进入系统后,查询出来的结果不能显示顶层表单中。不知道是什么原因。

#5


我是在一个表单上选择查询条件,然后用brow显示查询结果。

#6


你是不是没有THISFORM.REFRESH?试试看?

#7


brow 调试的时候可以用用,编译之后就不要用了,编译之后用 Grid 控件显示。

#8


如何将查询出来的数据导出到EXCEL表?
我通过上面的表单选择查询条件后点“查询”按钮,把查询的结果显示在grid1里面,但是查询出来了,grid1没有显示,“查询”按钮的代码如下,请高手指点一下哪个地方有问题:

tj1=alltrim(thisform.combo1.value)
tj2=alltrim(thisform.combo2.value)
tj3=alltrim(thisform.text1.value)
sele 1
use 查询.dbf
zap

l1=messagebox("要进行人员信息查询吗??",4,"询问")
if l1=6
sele 2
use 人员信息

if len(alltrim(thisform.combo1.value))=0
   messagebox("请选择查询条件!",0,"提示")
   goto bottom 
   thisform.combo1.setfocus
   return
endif
if len(alltrim(thisform.combo2.value))=0
   messagebox("请选择查询条件!",0,"提示")
   goto bottom 
   thisform.combo2.setfocus
   return
endif
if empty(thisform.text1.value)
   messagebox("请输入查询内容!",0,"提示")
   goto bottom 
   thisform.text1.setfocus
   return
endif

sele 1
if tj2="等于"
appe from 人员信息 for &tj1=alltrim(tj3)
else
appe from 人员信息 for alltrim(tj3) $ &tj1
endif
go top
if .not. eof()
  thisform.grid1.recordsourcetype=1
  thisform.grid1.recordsource='查询'
  thisform.refresh
else
   RE=MESSAGEBOX("无此类人员!",0+48+256,"信息窗口")
endif


endif
sele 1
use
sele 2
use

#9


  thisform.grid1.recordsource='表名'
  thisform.grid1.refresh

#10


楼主为什么我的vf数据库不能执行copy to语句呢?
而且报错说copy不是有效的命令,楼主有这样的问题吗?

#11


copy to 命令,就可以解决了

#1


CLOSE DATA
use grzh
set filt to bdyy=1
COPY TO 导出文件名 for bdyy=1 xls
go top
if .not. eof()
   brow fiel  dwmc:h='单位名称',sbdm:h='社保代码',xm:h='姓名',jf_n:h="起始缴费_年",jf_y:h="起始缴费_月",jfy_b:h="本年缴费月",jfjs_b:h="本年缴费基数",bdyy:h='变动标识',BZ:H="变动备注"noedit title "查询新分学生"
   else
   RE=MESSAGEBOX("无此类人员!",0+48+256,"信息窗口")
endif
close data
return

#2


我是想先查询出来结果,然后另外有一个“导出”按钮,如果需要导出的就点“导出”按钮,然后选择保存的位置。不需要的就不导出。
不知道怎么实现。

#3


SELECT grzh
lcDelimFile = PUTFILE('', '导出的Excel表名', 'XLS')
IF EMPTY(lcDelimFile)
   RETURN
ENDIF
COPY TO (lcDelimFile) TYPE XL5

#4


感谢十豆三,上面的问题已经解决。
但是现在遇到一个新问题。就是显示查询出来的数据的时候,如果在项目管理器里面可以正常显示出来,但是当我把程序连编程可执行文件后,通过可执行程序进入系统后,查询出来的结果不能显示顶层表单中。不知道是什么原因。

#5


我是在一个表单上选择查询条件,然后用brow显示查询结果。

#6


你是不是没有THISFORM.REFRESH?试试看?

#7


brow 调试的时候可以用用,编译之后就不要用了,编译之后用 Grid 控件显示。

#8


如何将查询出来的数据导出到EXCEL表?
我通过上面的表单选择查询条件后点“查询”按钮,把查询的结果显示在grid1里面,但是查询出来了,grid1没有显示,“查询”按钮的代码如下,请高手指点一下哪个地方有问题:

tj1=alltrim(thisform.combo1.value)
tj2=alltrim(thisform.combo2.value)
tj3=alltrim(thisform.text1.value)
sele 1
use 查询.dbf
zap

l1=messagebox("要进行人员信息查询吗??",4,"询问")
if l1=6
sele 2
use 人员信息

if len(alltrim(thisform.combo1.value))=0
   messagebox("请选择查询条件!",0,"提示")
   goto bottom 
   thisform.combo1.setfocus
   return
endif
if len(alltrim(thisform.combo2.value))=0
   messagebox("请选择查询条件!",0,"提示")
   goto bottom 
   thisform.combo2.setfocus
   return
endif
if empty(thisform.text1.value)
   messagebox("请输入查询内容!",0,"提示")
   goto bottom 
   thisform.text1.setfocus
   return
endif

sele 1
if tj2="等于"
appe from 人员信息 for &tj1=alltrim(tj3)
else
appe from 人员信息 for alltrim(tj3) $ &tj1
endif
go top
if .not. eof()
  thisform.grid1.recordsourcetype=1
  thisform.grid1.recordsource='查询'
  thisform.refresh
else
   RE=MESSAGEBOX("无此类人员!",0+48+256,"信息窗口")
endif


endif
sele 1
use
sele 2
use

#9


  thisform.grid1.recordsource='表名'
  thisform.grid1.refresh

#10


楼主为什么我的vf数据库不能执行copy to语句呢?
而且报错说copy不是有效的命令,楼主有这样的问题吗?

#11


copy to 命令,就可以解决了