| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 174 人关注过本帖
标题:如何从EXCEL文件中采集数据 ?
只看楼主 加入收藏
sarge_xp
Rank: 2
等 级:论坛游民
帖 子:122
专家分:13
注 册:2006-4-30
结帖率:60%
收藏
 问题点数:20 回复次数:5 
如何从EXCEL文件中采集数据 ?
table.rar (533 Bytes)


怎样才能把EXCEL中的列L、M、N、S、T、U中的数据采集到同一DBF中 ?
搜索更多相关主题的帖子: 文件 DBF EXCEL 数据 采集 
6 天前 21:55
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10803
专家分:43403
注 册:2014-5-20
收藏
得分:0 
本论坛vfp版块搜索“EXCEL”有一大堆类似帖参考
5 天前 10:36
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:377
专家分:912
注 册:2021-1-9
收藏
得分:0 
用LIBXL快的你怀疑人生
5 天前 13:38
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2327
专家分:4195
注 册:2007-4-27
收藏
得分:0 
程序代码:

    SET ENGINEBEHAVIOR 70
    SET SAFETY OFF 
    SET TALK OFF 
    CREATE TABLE tabled (佣金 n(10,2),印花税 n(10,2),其他杂费 n(10,2),净佣金 n(10,2),规费 n(10,2),过户费 n(10,2))
    CLOSE DATABASES  
    SELECT 0
    USE tabled ALIAS bmk
    ZAP 
    MyExcel=createobject('excel.application')  
    IF !VARTYPE(myexcel)$"Oo"    
      MESSAGEBOX("建立EXCEL文件失败,请检查OFFICE是否正常!",48,"提醒:")
      RETURN 
    ENDIF
    MyExcel.visible=.T.                   
    MyExcel.DisplayAlerts = .F.      
    filemc=GETFILE()
    Mb_excel=myexcel.workbooks.open(filemc)   
    Mb_SheetName=MyExcel.application.ActiveSheet.Name 
    Mb_UsedRange =Mb_excel.worksheets(Mb_SheetName).UsedRange  
    Mb_rows=Mb_UsedRange.rows.count    
    SELECT bmk 
    FOR  i=2 TO mb_rows
      APPEND BLANK 
      REPLACE 佣金 WITH myExcel.cells(i,12).value
      REPLACE 印花税 WITH myExcel.cells(i,13).value
      REPLACE 其他杂费 WITH myExcel.cells(i,14).value
      REPLACE 净佣金 WITH myExcel.cells(i,19).value
      REPLACE 规费 WITH myExcel.cells(i,20).value
      REPLACE 过户费 WITH myExcel.cells(i,21).value
    ENDFOR 
    MyExcel.ActiveWorkbook.close   
    MyExcel.DisplayAlerts = .T.  
    MyExcel.WorkBooks.close      
    MyExcel.QUIT 
    RELEASE MyExcel  
    
    QUIT  



复制粘贴成为一PRG文档,执行即可

只求每天有一丁点儿的进步就可以了
昨天 12:37
sarge_xp
Rank: 2
等 级:论坛游民
帖 子:122
专家分:13
注 册:2006-4-30
收藏
得分:0 
回复 4楼 wengjl
SET DEFAULT TO C:\TEST
SET TALK OFF
SET SAFETY OFF
CLOSE DATABASES
ADIR(ABC)
? ALEN(ABC)
IF ALEN(ABC)>5
    FOR I=1 TO ALEN(ABC)/5
        IF JUSTEXT(ABC(I ,1))#"XLS" OR !(ISDIGIT(LEFT(ALLTRIM(JUSTFNAME(ABC(I ,1))),1))) &&获得文件扩展名
            ? ABC(I ,1)
            DELETE FILE  ABC(I ,1) RECYCLE
        ENDIF
    ENDFOR
ENDIF


OEXCEL = CREATEOBJECT("EXCEL.APPLICATION")
WITH OEXCEL
    .WORKBOOKS.OPEN(SYS(5) + SYS(2003) +"\"+ALLTRIM(ABC(1,1)))
    .DISPLAYALERTS = .F.
    .ACTIVEWORKBOOK.SAVEAS(SYS(5) + SYS(2003) + "\771.dbf",8)  && 保存为以制表符分隔的文本文件
    .ACTIVEWORKBOOK.CLOSE
    .DISPLAYALERTS = .T.
    .QUIT
ENDWITH


将EXCEL数据转为771.DBF后,数据都被取整了,是不是有些参数没设好 ?
4 小时前
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2327
专家分:4195
注 册:2007-4-27
收藏
得分:0 
我给你的是有小数的。

为什么要写上  DELETE FILE  ABC(I ,1) RECYCLE 这一句,这是疯狂而且危险的思维 ?

只求每天有一丁点儿的进步就可以了
3 小时前
快速回复:如何从EXCEL文件中采集数据 ?
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024249 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved