标题:VFP怎样自动读取多张样式相同的个人信息采集表(Excel格式)到dbf汇总表中
只看楼主
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
结帖率:96.99%
已结贴  问题点数:20 回复次数:17 
VFP怎样自动读取多张样式相同的个人信息采集表(Excel格式)到dbf汇总表中
现有多张样式相同的个人信息采集表(Excel格式)如何利用VFP程序自动读取到dbf汇总表中,望高手赐教,万分感谢!!!
信息汇总.rar (30.07 KB)
搜索更多相关主题的帖子: Excel 汇总 dbf 格式 表中 
2021-04-12 14:47
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:226
专家分:42
注 册:2019-3-8
得分:5 
把这些表放在一个文件夹中,遍历,依次打开EXCEL,将内容读入数组,插入汇总表中。遍历代码自己写,读入、插入代码供参考:
Create table zsjh (yxdm c(10),yxmc c(70), zydm c(10),zymc c(200), xz c(16), bzk c(15), sf c(10),cs c(10),shouf c(20), zsjh n(10,0), jh17 n(10,0), jh18 n(10,0), jh19 n(10,0), jh20 n(10,0),fs17 n(10,0), fs18 n(10,0), fs19 n(10,0), fs20 n(10,0),wc17 n(15,0), wc18 n(15,0), wc19 n(15,0), wc20 n(15,0),zhbfd n(12,7), xkkm c(60),bz m,ckxx m)
ox = CREATEOBJECT("Excel.Application")  &&已有汇总表的话,此句可省略。
ox.workbooks.open(GETFILE("xlsx"))  &&改为遍历
lnrow = ox.activesheet.usedrange.rows.count
lncol = ox.activesheet.usedrange.columns.count
DIMENSION laxls(lnrow,lncol)
laxls = ox.activesheet.usedrange.value
ox.quit
insert into zsjh from array laxls
brow
2021-04-12 15:06
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
个人信息采集表的样式是这样的:


下列代码有两处错误(红色显示),请各位大侠赐教,万分感谢!!!
Close Databases
Use Grxx && 表结构 字段内容 C(10) 类型 C(1) 位置 C(4)
Local Axx[Reccount()] && 无效的下标引用
Eole=CREATEOBJECT('Excel.Application')
With Eole
    For lnI=1 To Adir(Axls,"*.Xls")
        .Workbooks.Open(Sys(5)+Sys(2003)+"\"+Axls[lnI,1])
        Select Grxx
        Scan
            Do Case
               Case Inlist(Alltrim(类型),"C","M")
                    Axx[Recno()]=ALLTRIM(.Range(位置).Text)
               Case Alltrim(类型)=="D"
                    Axx[Recno()]=Ctod(Transform(.Range(位置).Text,"@R 9999-99-99"))
               Case Alltrim(类型)=="N"
                    Axx[Recno()]=Val(.Range(位置).Text)
            Endcase
        Endscan
        Insert Into 信息汇总表 From Array Axx && 找不到变量“Axx”
    Endfor
    .quit
Endwith
RELEASE Eole
Select 信息汇总表
Browse
Use In 信息汇总表
Use In Grxx

[此贴子已经被作者于2021-4-13 08:45编辑过]

2021-04-12 15:50
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
得分:0 
说明
局部内存变量和变量数组只能在创建它们的过程或函数中使用和更改,不能被高层或低层程序访问。一旦包含局部内存变量和数组的过程或函数执行完毕,则这些局部内存变量和数组将被释放。

用 LOCAL 创建的变量和数组初始化为假(.F.)。

必须在赋值之前把内存变量或数组声明为局部。如果在用 LOCAL 声明内存变量或数组为局部之前,在程序中对它们进行赋值,则 Visual FoxPro 产生一条语法错误。

可以按引用传递局部变量。
2021-04-12 20:08
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
代码如何改,望赐教!!!
2021-04-13 08:34
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:0 
没有办法,表格太复杂了,还是发动群众,增加人手,每个十张表格,手工录入吧。
2021-04-13 10:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
回复 5楼 王咸美
Grxx.DBF 创建了吗


[此贴子已经被作者于2021-4-13 10:38编辑过]


坚守VFP最后的阵地
2021-04-13 10:24
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@sdta 非常感谢指导!!!Grxx.dbf已创建,仍提示 Local Axx[Reccount()] “ 无效的下标引用”,望指教!
2021-04-13 11:09
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用王咸美在2021-4-13 11:09:17的发言:

@sdta 非常感谢指导!!!Grxx.dbf已创建,仍提示 Local Axx[Reccount()] “ 无效的下标引用”,望指教!

贴上完整代码

坚守VFP最后的阵地
2021-04-13 11:37
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
完整代码如下:
Close Databases
use 信息汇总表 in 0
zap
Use Grxx in 0 && 表结构 字段内容 C(10) 类型 C(1) 位置 C(4)
Local Axx[Reccount()] && 无效的下标引用
Eole=CREATEOBJECT('Excel.Application')
With Eole
    For lnI=1 To Adir(Axls,"*.Xls")
        .Workbooks.Open(Sys(5)+Sys(2003)+"\"+Axls[lnI,1])
        Select Grxx
        Scan
            Do Case
               Case Inlist(Alltrim(类型),"C","M")
                    Axx[Recno()]=ALLTRIM(.Range(位置).Text)
               Case Alltrim(类型)=="D"
                    Axx[Recno()]=Ctod(Transform(.Range(位置).Text,"@R 9999-99-99"))
               Case Alltrim(类型)=="N"
                    Axx[Recno()]=Val(.Range(位置).Text)
            Endcase
        Endscan
       Insert Into 信息汇总表 From Array Axx && 找不到变量“Axx”
    Endfor
    .quit
Endwith
RELEASE Eole
Select 信息汇总表
Browse
Use In 信息汇总表

2021-04-13 11:52



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




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

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