标题:将当前工作区中打开的表自动转换为EXCEL文件
只看楼主
smart921
Rank: 1
等 级:新手上路
帖 子:107
专家分:9
注 册:2010-8-8
得分:0 
回复 30楼 hu9jj
VFP6.0
2012-05-15 21:40
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
请直接将一楼的代码复制过去再试试看,VFP6.0应该可以运行的。如果是9.0可以直接从代码上看的出命令和函数名是否正确,因为这些关键字都是用蓝色显示的。

活到老,学到老! http://www. E-mail:hu-jj@
2012-05-16 07:40
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
oExcel = CreateObject("excel.application") &&创建 EXCEL 实例对象
With oExcel
    .Workbooks.Add                           && 增加一个工作薄
    .Sheets("Sheet1").Select
    .Sheets("Sheet1").Name = "sample"       && 改变SHEET名称
    .Cells.Select                           && 全选工作簿
    With .Selection.Font
         .Name = "宋体"
         .Size = 10
    EndWith
ENDWITH
SELECT * FROM GZ INTO CURSOR TMP
JLS=TRANSFORM(RECCOUNT()+1)
oExcel.ActiveSheet.Rows(1).RowHeight=24   &&设置第1行至最后一行的高度
oExcel.ActiveSheet.Rows('2:&JLS').RowHeight=20
FOR I=1 TO FCOUNT()
    MFIELD=FIELD(I)
    OEXCEL.ActiveSheet.Columns(I).ColumnWidth=FSIZE(FIELD(I))  && 列的宽度(单位:字符个数)
    OEXCEL.Cells(1,I).Value=FIELD(I) && 设置单元格的值(可以是字符串变量,表字段名)
    OEXCEL.selection.HorizontalAlignment=3
    FOR J=1 TO RECCOUNT()
        GO J
        OEXCEL.Cells(J+1,I).Value=&MFIELD
    ENDFOR
ENDFOR
OEXCEL.visible = .T. && 可见
VFP导入EXCEL:这段代码虽然不怎么精练,也有一定的缺限,但不受打开的EXCEL影响,运行正常。

[ 本帖最后由 sdta 于 2012-5-17 21:38 编辑 ]

坚守VFP最后的阵地
2012-05-17 21:30
小主板
Rank: 2
等 级:论坛游民
帖 子:187
专家分:21
注 册:2009-6-28
得分:0 
谢谢
2012-05-23 09:03
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
回复 33楼 sdta
这段代码并无特别之处,同样也会受到打开EXCEL操作的影响。只不过通常读写操作仅在短时间就完成了,用户还来不及去打开其他的EXCEL文件,所以也就没有出现受影响的问题。

活到老,学到老! http://www. E-mail:hu-jj@
2012-05-24 07:44
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
小结:
1、在VFP对EXCEL文件操作的时候,用户打开或关闭EXCEL文件,都有可能会对VFP的操作出现影响。
2、之所以说是可能,而不是说肯定,这与打开EXCEL使用的进程相关。比如说在VFP操作EXCEK之前,如果用户已经打开了EXCEL文件,然后在这个进程(窗口)中用打开菜单来打开其他的EXCEL文件,就不会对VFP的操作发生影响。此时如果再用点击EXCEL文件方式打开,有时也不会对VFP的操作产生影响。
3、在VFP对EXCEL操作时,如果用户关闭了所有已经打开的EXCEL进程时,也可能会对VFP的操作产生影响,导致出错中断。
4、打开EXCEL文件对VFP操作的影响不仅仅是读操作,也会影响到写操作。我有次在VFP对EXCEL文件添加一个表,然后向新增的表写入内容时,正好打开另一个EXCEL文件,新增的表竟然被添加到新打开的EXCEL文件中。
5、总之,这个影响可能与进程有关,如果当前活动的进程不是VFP操作时申请的进程,则不会受影响;反之则必定会受影响。

活到老,学到老! http://www. E-mail:hu-jj@
2012-05-24 08:00
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
欢迎各位对以上的小结拍砖!

活到老,学到老! http://www. E-mail:hu-jj@
2012-05-24 08:02
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
表中记录少还免强
2012-05-24 08:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-366600-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034737 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved