VFP下的SQL和EXCEL技术
来源:优易学  2011-12-9 18:48:04   【优易学:中国教育考试门户网】   资料下载   IT书店

 

  第二步:转换并计算
  Select 部门 as 部门,;
  sum(男) as 男,;
  sum(女) as 女,;
  sum(大学本科) as 大学本科,;
  sum(大学专科) as 大学专科,;
  sum(技术人员) as 技术人员,;
  sum(管理人员) as 管理人员,;
  sum(管理人员) as 管理人员,;
  sum(秘书) as 秘书;
  from query1 into cursor query1;
  group by 部门

  不要以为我把“from query1 into cursor query1”写错了,这样写的语句确实可以使用。
  到这一步,统计表就计算出来了,不信用 BROWSE 看看。往下面我们应该说说怎样把现在统计出的数据输出到 EXCEL 中了(当然什么样子的数据都可以)。
  首先用 CreateObject 函数建立一个 Excel automation 对象,程序如下:

  local excel,o
  define windows WaitWin at 0,0 size 10,60 system ;
  font 'times new roman',12 ;
  title '提示' close float zoom &&用于处理提示信息的窗口
  move windows waitWin center
  acti windows waitwin
  set color to w+/n
  clear

  excel=createobject('excel.application')
  if type('excel')='U' &&未能产生EXCEL对象
  ? '启动 EXCEL 失败...'
  release windows WaitWin
  return
  endif

  ReportTitle='XXXX公司人员分布情况'
  ExcelFile="xls1.xls"
  excel.caption=ReportTitel
  select query1
  if not file(ExcelFile)
  export to (ExcelFile) type xls
  endif

  excel.workbooks.open(ExcelFile)
  o=excel.activeworkbook.activesheet &&用对象代替这么长的一串字
  o.cells(1,1).value=ReportTitle

  *
  * 第一行是标题,故从第二行开始
  *
  scan for recno()>1 &&每一行
  ?'正在将数据转换到 Excel 表格中...',recno()
  for i=1 to fcount() &&每一列
  fld=field(i)
  if type(fld)='C'&&如果字段太宽,Excel可能不能正确接受数据
  o.cells(recno()+3,i).value=trim(&fld)
  else
  o.cells(recno()+3,i).value=&fld
  endif
  endfor
  endscan

  o.cells(1,1).select
  excel.ActiveWindow.windowstate=2
  excel.ActiveWorkbook.save()
  excel.visible=.t.
  clear
  startTime=time()
  set cursor off

  *
  * 等待 Excel 处理完毕后再继续
  *
  do while .t.
  @1,4 say '已启动后台 Excel 表格处理程序,处理中...'
  @2,4 say 'Ctrl+End 继续处理...'
  @4,4 say '开始时间:'
  ??starttime
  @5,4 say '现在时间:'
  ??time()
  &&VFP会在此等待,除非你从 EXCEL中退出或按下 Ctrl+End键
  if inkey(0.5)=23 or type('o.name')='U'
  exit
  endif
  enddo
  set cursor on
  release o,excel
  release FindWindow
  ?'处理完毕...'
  =inkey(0.5)
  release windows WaitWin
  end note

上一页  [1] [2] 

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训