标题:使用 VFP 读取 excel 的信息采集表各项内容
只看楼主
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
嘿嘿,难说。

授人以渔,不授人以鱼。
2014-08-03 23:45
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用xs591222在2014-8-2 21:18:13的发言:

给个地址吧


您可能会说搜吧

我不知道你原贴的关键字是神马,如何搜得呢!麻烦您给个地址吧……谢谢

现在多数人是实用主义者,当有求于论坛时,带着问题来到了论坛,问题解决了,再也看不到人了。
论坛每天都有新帖及回帖更新,对于有心人来讲,隔三差五会到论坛来看看,把有用的帖子收藏起来,以备不时之需;对于无心之人,他是不会到论坛来的,也就不知道论坛有什么内容的帖子及回复。
对于热心人的回帖,不求大家有所回报,只求对大家有所帮助。找不到回帖,说明你是无缘人。
论坛现有帖子,我看过的至少有一半。

坚守VFP最后的阵地
2014-08-03 23:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
代码我就不发了,以前那个也只是类似的思想,不是具体当前问题的解决代码,找到也没什么用。解释一下思路即可:在Excel的另一个Sheet中,或者在外部另建一个文件(文本、xml、数据表等等形式均可),记录需要读取的数据的标题文字、灌入数据库的字段名(这样两个分离是为了适应字段名和文字不一致的情形)、数据在Excel.Sheet中的位置、数据类型、(必要时)转换公式之类用得着的东西,按图索骥提取数据,注入数据库,这是用循环做的,代码中不出现具体的字段名称和文字信息,就不是死代码,不管设计的Excel表格式如何变化、如何增减字段,都不需要修改源程序——事实上,我之前发的那个是根据Excel中的信息自动创建数据表的。

你要记住:你的表格不可能一成不变,而诸多细微的变化(尤其是字段文字被改动)是很难避免的,你的程序要有足够的适应能力,就绝对要避免硬编码,把字段名称和位置的具体值嵌入到源代码中,是编程大戒。可惜很多人喜欢这样写,因为不用动脑筋,又无比地勤快,不惜花精力敲入和修改硬数据——不企图一劳永逸的程序员不可能是好程序员。

如果有洁癖,看到、或写到前面那种十多数十个字段一行一行对应的代码,就应该想办法了!

[ 本帖最后由 TonyDeng 于 2014-8-4 00:06 编辑 ]

授人以渔,不授人以鱼。
2014-08-04 00:01
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用TonyDeng在2014-8-4 00:01:05的发言:

代码我就不发了,以前那个也只是类似的思想,不是具体当前问题的解决代码,找到也没什么用。解释一下思路即可:在Excel的另一个Sheet中,或者在外部另建一个文件(文本、xml、数据表等等形式均可),记录需要读取的数据的标题文字、灌入数据库的字段名(这样两个分离是为了适应字段名和文字不一致的情形)、数据在Excel.Sheet中的位置、数据类型、(必要时)转换公式之类用得着的东西,按图索骥提取数据,注入数据库,这是用循环做的,代码中不出现具体的字段名称和文字信息,就不是死代码,不管设计的Excel表格式如何变化、如何增减字段,都不需要修改源程序——事实上,我之前发的那个是根据Excel中的信息自动创建数据表的。

你要记住:你的表格不可能一成不变,而诸多细微的变化(尤其是字段文字被改动)是很难避免的,你的程序要有足够的适应能力,就绝对要避免硬编码,把字段名称和位置的具体值嵌入到源代码中,是编程大戒。可惜很多人喜欢这样写,因为不用动脑筋,又无比地勤快,不惜花精力敲入和修改硬数据——不企图一劳永逸的程序员不可能是好程序员。

如果有洁癖,看到、或写到前面那种十多数十个字段一行一行对应的代码,就应该想办法了!

你的意思我明白,对于楼主这样水平的选手,只有用前面代码的方法,否则,他就看不懂了。

坚守VFP最后的阵地
2014-08-04 00:42
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分: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
    Endfor 
    .quit
Endwith 
RELEASE Eole
Select 个人信息数据库表
Browse
Use In 个人信息数据库表
Use In Grxx

坚守VFP最后的阵地
2014-08-04 01:33
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用sdta在2014-8-3 23:34:49的发言:

到论坛提问题的多数是没入门或刚入门的新手,你的编码多数是软编码,他们也看不懂,因此.......
高见

只求每天有一丁点儿的进步就可以了
2014-08-04 08:47
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用sdta在2014-8-3 23:48:01的发言:

 
现在多数人是实用主义者,当有求于论坛时,带着问题来到了论坛,问题解决了,再也看不到人了。
论坛每天都有新帖及回帖更新,对于有心人来讲,隔三差五会到论坛来看看,把有用的帖子收藏起来,以备不时之需;对于无心之人,他是不会到论坛来的,也就不知道论坛有什么内容的帖子及回复。
对于热心人的回帖,不求大家有所回报,只求对大家有所帮助。找不到回帖,说明你是无缘人。
论坛现有帖子,我看过的至少有一半。
论坛是铁打不动的,坛友是流水的,初学的提大问题——不着边际,半初学的提中问题——有点边际,到了门口的提小问题——版主们答起来有点味……

只求每天有一丁点儿的进步就可以了
2014-08-04 08:50
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用TonyDeng在2014-8-4 00:01:05的发言:

代码我就不发了,以前那个也只是类似的思想,不是具体当前问题的解决代码,找到也没什么用。解释一下思路即可:在Excel的另一个Sheet中,或者在外部另建一个文件(文本、xml、数据表等等形式均可),记录需要读取的数据的标题文字、灌入数据库的字段名(这样两个分离是为了适应字段名和文字不一致的情形)、数据在Excel.Sheet中的位置、数据类型、(必要时)转换公式之类用得着的东西,按图索骥提取数据,注入数据库,这是用循环做的,代码中不出现具体的字段名称和文字信息,就不是死代码,不管设计的Excel表格式如何变化、如何增减字段,都不需要修改源程序——事实上,我之前发的那个是根据Excel中的信息自动创建数据表的。
 
你要记住:你的表格不可能一成不变,而诸多细微的变化(尤其是字段文字被改动)是很难避免的,你的程序要有足够的适应能力,就绝对要避免硬编码,把字段名称和位置的具体值嵌入到源代码中,是编程大戒。可惜很多人喜欢这样写,因为不用动脑筋,又无比地勤快,不惜花精力敲入和修改硬数据——不企图一劳永逸的程序员不可能是好程序员。
 
如果有洁癖,看到、或写到前面那种十多数十个字段一行一行对应的代码,就应该想办法了!
当一段代码只用一次,一般是硬编解决来得快。
当一段代码可用多次,遇变改几次后自然相着要提高适应性了————这是走向软编的推动力————火候不到位想软编也不行————所谓功到自然成哦

只求每天有一丁点儿的进步就可以了
2014-08-04 08:59
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
得分:0 
你们都很耐心
2014-08-04 10:26
vereesa
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2014-4-28
得分:0 
以下是引用wengjl在2014-8-4 08:59:03的发言:

当一段代码只用一次,一般是硬编解决来得快。
当一段代码可用多次,遇变改几次后自然相着要提高适应性了————这是走向软编的推动力————火候不到位想软编也不行————所谓功到自然成哦



学习了!我更加要努力跟上了!
2014-08-04 16:01



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




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

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