标题:使用 VFP 读取 excel 的信息采集表各项内容
只看楼主
mspanwei
Rank: 1
等 级:新手上路
威 望:1
帖 子:49
专家分:0
注 册:2010-1-5
得分:0 
原版主和现任版主都能一直关注论坛,真是不易,都是好心人啊!
2014-09-02 20:15
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:161
注 册:2009-8-20
得分:0 
回复 70 楼 wangzhiyi
给一下对照表.xls和表结构库stru1的表结构信息.

[ 本帖最后由 antony521 于 2014-9-3 10:48 编辑 ]
2014-09-03 10:46
vereesa
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2014-4-28
得分:0 
以下是引用wangzhiyi在2014-9-1 15:11:20的发言:

好久没上来,一口气读完所有的贴子,深受启发。自己试着写了一段程序,但愿能对楼主有所帮助。SET date TO ansi
SET CENTURY on
SET SAFETY OFF
myexcel=createobject('excel.application')        && 创建一个对象
myexcel.visible=.f.
bookexcel=myexcel.workbooks.open("f:\字段名对照表.xls")            && 打开指定文件
USE f:\stru1
ZAP
arr=bookExcel.ActiveSheet.UsedRange.Value
FOR i=2 TO ALEN(arr,1)
    DO CASE
       CASE arr(i,4)='字符'
            x1='C'
       CASE arr(i,4)='日期'
            x1='D'
       CASE arr(i,4)='逻辑'
            x1='L'
       CASE arr(i,4)='数字'
            x1='N'
    ENDCASE
    APPEND BLANK
    REPLACE field_name WITH arr(i,3),field_type WITH x1,field_len WITH arr(i,5)
    IF field_type='N'
       REPLACE field_dec WITH 2
    endif
*    REPLACE 字段内容 WITH arr(i,3),类型 WITH x1,位置 WITH arr(i,6)
ENDFOR
CREATE grxx from f:\stru1
USE grxx
*myexcel=createobject('excel.application')        && 创建一个对象
FOR in1=1 TO ADIR(axls,"个人信息*.xls")
    bookexcel=myexcel.workbooks.open(SYS(5)+SYS(2003)+"\"+axls[in1,1])            && 打开指定文件
    APPEND BLANK
    FOR i=2 TO ALEN(arr,1)
        col1=VAL(LEFT(arr(i,6),AT(',',arr(i,6))-1))
        row1=VAL(subs(arr(i,6),AT(',',arr(i,6))+1))
        DO case
           CASE arr(i,4)='字符' OR arr(i,4)='备注'
                xx1=ALLTRIM(myexcel.cells(col1,row1).text)
           CASE arr(i,4)='日期'
       *        xx1=CTOD(myexcel.cells(col1,row1).text)
                xx1=CTOD(TRANSFORM(myexcel.cells(col1,row1).text,"@R 9999-99-99"))
           CASE arr(i,1)='数字'
                xx1=VAL(myexcel.cells(col1,row1).text)
        ENDCASE
        REPLACE &arr(i,3) WITH xx1
    ENDFOR
    myexcel.workbooks.close &&关闭当前EXCEL文档
    myexcel.quit &&退出EXCEL
ENDFOR
BROWSE
运行程序只需要给出一个字段名对照表.XLS文件,程序就能自动完成数据表的创建,所有信息采集表的数据一次性导入,如果信息采集表发生了变化,只需要修改字段名对照表中的相关内容即可。

太感谢了!之前筹备其他工作,一直没上论坛!
这就是版主所说的脱离了硬编码的程序!
2014-09-04 20:54
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:680
专家分:1287
注 册:2009-3-1
得分:0 
TO: vereesa

快2个月了,楼主有什么进展?
2014-10-30 20:31
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
关于软、硬编码,以及对初学者用硬编码更能让他看懂的观点,确实是高见,对本人有启发,感谢。
2014-10-31 09:14
表狐
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-11-29
得分:0 
出于工作需要,我在此学习了如何用VFP控制EXCEL文件的操作代码。谢谢。
2014-11-29 20:11
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:161
注 册:2009-8-20
得分:0 
另开帖问.

[ 本帖最后由 antony521 于 2015-7-10 16:25 编辑 ]
2015-07-10 10:45
yjc9894301
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-3-25
得分:0 
又让新手开眼界,今天又学习了很多!
2016-01-29 09:00
andy292
Rank: 2
等 级:论坛游民
威 望:1
帖 子:86
专家分:13
注 册:2005-2-26
得分:0 
好帖子  赞一个
2016-12-12 17:48
cnlyk
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-5-15
得分:0 
赞一个,学习!
2016-12-28 15:08



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




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

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