标题:如何从Excel中建立DBF数据表
只看楼主
lianliming
Rank: 2
等 级:论坛游民
帖 子:29
专家分:18
注 册:2009-5-24
结帖率:100%
已结贴  问题点数:20 回复次数:21 
如何从Excel中建立DBF数据表
Excel表格中第1行为建立Dbf的字段,从第2行开始为Dbf的记录,如何用编程形式将Excel表格转换为Dbf数据表,谢谢!
如表:
Excel导入Dbf测试数据.zip (7.74 KB)
搜索更多相关主题的帖子: Excel 建立 DBF 数据表 表格 
2019-01-05 13:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:7 
运行环境:WINXP+EXCEL2003+VFP9 7.423
程序代码:
cFileName = SYS(5) + SYS(2003) + "\Excel导入Dbf测试数据.xls"
oExcel = CreateObject("Excel.Application") 
WITH oExcel
    .WorkBooks.Open(cFileName)
    .ActiveSheet.UsedRange.Columns.AutoFit
    nCols = .ActiveSheet.UsedRange.Columns.Count
    cStru = ""
    FOR ii = 1 TO nCols
        nWidth = INT(.ActiveSheet.Columns(ii).ColumnWidth)
        cStru = cStru + IIF(EMPTY(cStru), "", ",") + .ActiveSheet.Cells(1, ii).Text + " C(" + TRANSFORM(nWidth) + ")"
    ENDFOR
    .DisplayAlerts = .F.
    .ActiveWorkbook.SaveAs(cFileName, 39)
    .DisplayAlerts = .T.
    .QUIT 
    RELEASE oExcel
ENDWITH 

CREATE CURSOR Cssj (&cStru)
APPEND FROM Excel导入Dbf测试数据 TYPE XL5
SELECT * FROM Cssj WHERE RECNO() > 1



[此贴子已经被作者于2019-1-5 14:32编辑过]


坚守VFP最后的阵地
2019-01-05 14:28
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
将EXCEL另存为:

然后再追加

坚守VFP最后的阵地
2019-01-05 15:28
sostemp
Rank: 4
等 级:业余侠客
威 望:8
帖 子:162
专家分:221
注 册:2009-6-2
得分:7 
cFileName = SYS(5) + SYS(2003) + "\Excel导入Dbf测试数据.xlsx"
cOutFileName = SYS(5) + SYS(2003) + "\Excel导入Dbf测试数据.xls"
oExcel = CreateObject("Excel.Application")
WITH oExcel
    .WorkBooks.Open(cFileName)
    .ActiveSheet.UsedRange.Columns.AutoFit
    nCols = .ActiveSheet.UsedRange.Columns.Count
    cStru = ""
    FOR ii = 1 TO nCols
        nWidth = INT(.ActiveSheet.Columns(ii).ColumnWidth)
        cStru = cStru + IIF(EMPTY(cStru), "", ",") + .ActiveSheet.Cells(1, ii).Text + " C(" + TRANSFORM(nWidth) + ")"
    ENDFOR
    .DisplayAlerts = .F.
    .ActiveWorkbook.SaveAs(cOutFileName, 39)
    .DisplayAlerts = .T.
    .QUIT
    RELEASE oExcel
ENDWITH

CREATE CURSOR Cssj (&cStru)
APPEND FROM Excel导入Dbf测试数据 TYPE XL5
SELECT * FROM Cssj WHERE RECNO() > 1

抖胆把版主的代码小小修改了一下,应该是可以运行了。

[此贴子已经被作者于2019-1-5 18:36编辑过]

2019-01-05 18:35
sostemp
Rank: 4
等 级:业余侠客
威 望:8
帖 子:162
专家分:221
注 册:2009-6-2
得分:0 

2019-01-05 18:42
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
如果你电脑上安装有EXCEL2007,可以将扩展名改为.XLSX

坚守VFP最后的阵地
2019-01-05 18:52
lianliming
Rank: 2
等 级:论坛游民
帖 子:29
专家分:18
注 册:2009-5-24
得分:0 
感谢2位老师!经测试,4楼程序在WIN10(64位专业版)+EXCEL2016+VFP9 7.423环境下可运行!!
再次感谢,谢谢!!!
2019-01-06 09:51
lianliming
Rank: 2
等 级:论坛游民
帖 子:29
专家分:18
注 册:2009-5-24
得分:0 
有点高兴得太早,运行一次成功后,就.........
2019-01-06 10:08
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
路径问题

坚守VFP最后的阵地
2019-01-06 10:40
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:7 

cFileName =GETFILE("xls")
 oExcel = CreateObject("Excel.Application")
 WITH oExcel
     .WorkBooks.Open(cFileName)
     .ActiveSheet.UsedRange.Columns.AutoFit
     .DisplayAlerts = .F.
     .ActiveSheet.cells(1,1).select
     dbfname=FORCEEXT(cFileName,"dbf")
     .ActiveWorkbook.SaveAs(dbfName,8)
     .Workbooks.close
     .QUIT
     RELEASE oExcel
 ENDWITH


利用VF直接另存为……

EXCEL字段名不可以超过5个汉字——因为另存为DBF是自由表。

[此贴子已经被作者于2019-1-7 12:42编辑过]


只求每天有一丁点儿的进步就可以了
2019-01-07 11:00



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




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

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