标题:使用 VFP 读取 excel 的信息采集表各项内容
只看楼主
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
以下是引用sdta在2014-7-30 17:07:36的发言:

实际上有了身份证号码,可以不要 性别、出生年月日 字段,可以通过身份证号码获取。


有些人的真实出生日期不是身份证上的,看要那日期怎么用了。

授人以渔,不授人以鱼。
2014-07-31 12:51
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
Eole=CREATEOBJECT('Excel.Application')
Local Axx[24]
With Eole
    For lnI=1 To Adir(Axls,"*.Xls")
        .Workbooks.Open(Sys(5)+Sys(2003)+"\"+Axls[lnI,1])
        Axx[1]=Transform(.Range("B1").Text) && 个人编号
        Axx[2]=Alltrim(.Range("B2").Text) && 姓名
        Axx[3]=Alltrim(.Range("D2").Text) && 性别
        Axx[4]=Ctod(Transform(Transform(.Range("F2").Text),"@R 9999-99-99")) && 出生日期
        Axx[5]=Alltrim(.Range("H2").Text) && 民族
        Axx[6]=Alltrim(.Range("B3").Text) && 籍贯
        Axx[7]=Alltrim(.RANGE("G3").Text) && 出生地
        Axx[8]=Alltrim(.Range("B4").Text) && 常住地址
        Axx[9]=Transform(.Range("G4").Text) && 邮编
        Axx[10]=Alltrim(.Range("B5").Text) && 工作单位
        Axx[11]=Transform(.Range("B6").Text) && 办公电话
        Axx[12]=Transform(.Range("E6").Text) && 移动电话
        Axx[13]=Ctod(Transform(Transform(.Range("B7").Text),"@R 9999-99-99")) && 参加工作时间
        Axx[14]=Ctod(Transform(Transform(.Range("D7").Text),"@R 9999-99-99")) && 入党时间
        Axx[15]=Alltrim(.Range("F7").Text) && 身份证号码
        Axx[16]=Alltrim(.Range("C8").Text) && 全日制学历
        Axx[17]=Alltrim(.Range("F8").Text) && 毕业院校及专业    
        Axx[18]=Alltrim(.Range("C9").Text) && 在职教育
        Axx[19]=Alltrim(.Range("F9").Text) && 在职教育毕业院校及专业    
        Axx[20]=Alltrim(.Range("B10").Text) && 现任职务
        Axx[21]=Alltrim(.Range("D10").Text) && 技术职务
        Axx[22]=Alltrim(.Range("I10").Text) && 熟悉何种技术有何专长        
        Axx[23]=Alltrim(.Range("B12").Text) && 奖惩情况
        Axx[24]=Alltrim(.Range("B13").Text) && 年度考核情况
        Insert Into 个人信息数据库表 From Array Axx
    Endfor 
    .quit
Endwith 
RELEASE Eole
Browse
Use In 个人信息数据库表
* 建议:将表中 奖惩情况及年度考核 字段的数据类型改为备注型
收到的鲜花
  • vereesa2014-08-05 14:40 送鲜花  3朵  

坚守VFP最后的阵地
2014-07-31 13:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
回复 22 楼 sdta
这样属于硬编码了

授人以渔,不授人以鱼。
2014-07-31 13:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
暂时没发现好的办法

坚守VFP最后的阵地
2014-07-31 14:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
以下是引用sdta在2014-7-31 14:01:03的发言:

暂时没发现好的办法


呵呵~

授人以渔,不授人以鱼。
2014-07-31 14:01
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
这个EXCEL表不是规则表,表中的数据不是全部提取。

坚守VFP最后的阵地
2014-07-31 14:03
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
读取E表信息到D表(代码可看22楼sdta的).rar (33.42 KB)


是8.0做的,把8.0的5个动态DLL文件下载来,放任一目录均可使用。

E表的格式不变就是可用的

只求每天有一丁点儿的进步就可以了
2014-07-31 14:45
vereesa
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2014-4-28
得分:0 
以下是引用sdta在2014-7-31 13:44:40的发言:

Eole=CREATEOBJECT('Excel.Application')
Local Axx[24]
With Eole
    For lnI=1 To Adir(Axls,"*.Xls")
        .Workbooks.Open(Sys(5)+Sys(2003)+"\"+Axls[lnI,1])
        Axx[1]=Transform(.Range("B1").Text) && 个人编号
        Axx[2]=Alltrim(.Range("B2").Text) && 姓名
        Axx[3]=Alltrim(.Range("D2").Text) && 性别
        Axx[4]=Ctod(Transform(Transform(.Range("F2").Text),"@R 9999-99-99")) && 出生日期
        Axx[5]=Alltrim(.Range("H2").Text) && 民族
        Axx[6]=Alltrim(.Range("B3").Text) && 籍贯
        Axx[7]=Alltrim(.RANGE("G3").Text) && 出生地
        Axx[8]=Alltrim(.Range("B4").Text) && 常住地址
        Axx[9]=Transform(.Range("G4").Text) && 邮编
        Axx[10]=Alltrim(.Range("B5").Text) && 工作单位
        Axx[11]=Transform(.Range("B6").Text) && 办公电话
        Axx[12]=Transform(.Range("E6").Text) && 移动电话
        Axx[13]=Ctod(Transform(Transform(.Range("B7").Text),"@R 9999-99-99")) && 参加工作时间
        Axx[14]=Ctod(Transform(Transform(.Range("D7").Text),"@R 9999-99-99")) && 入党时间
        Axx[15]=Alltrim(.Range("F7").Text) && 身份证号码
        Axx[16]=Alltrim(.Range("C8").Text) && 全日制学历
        Axx[17]=Alltrim(.Range("F8").Text) && 毕业院校及专业   
        Axx[18]=Alltrim(.Range("C9").Text) && 在职教育
        Axx[19]=Alltrim(.Range("F9").Text) && 在职教育毕业院校及专业   
        Axx[20]=Alltrim(.Range("B10").Text) && 现任职务
        Axx[21]=Alltrim(.Range("D10").Text) && 技术职务
        Axx[22]=Alltrim(.Range("I10").Text) && 熟悉何种技术有何专长        
        Axx[23]=Alltrim(.Range("B12").Text) && 奖惩情况
        Axx[24]=Alltrim(.Range("B13").Text) && 年度考核情况
        Insert Into 个人信息数据库表 From Array Axx
    Endfor
    .quit
Endwith
RELEASE Eole
Browse
Use In 个人信息数据库表
* 建议:将表中 奖惩情况及年度考核 字段的数据类型改为备注型




非常感谢sdta老师的解答!!我会好好研究的!
是的,我也感觉备注型才正确,不过我看数据量不大,就先用字符型了。
非常感谢!
2014-07-31 15:14
vereesa
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2014-4-28
得分:0 
以下是引用wengjl在2014-7-31 14:45:31的发言:



是8.0做的,把8.0的5个动态DLL文件下载来,放任一目录均可使用。

E表的格式不变就是可用的




谢谢wengjl老师!这正是我预想的功能,有了这个功能,相信工作起来更加方便了!!
我会好好研究您的代码的!!非常感谢!
2014-07-31 15:32
vereesa
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2014-4-28
得分:0 
以下是引用TonyDeng在2014-7-31 12:51:00的发言:



有些人的真实出生日期不是身份证上的,看要那日期怎么用了。



是的,这个时很头疼的问题,档案出生日期和身份证出生日期相差几年的都有。。。
2014-07-31 15:37



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




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

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