标题:Dbf文件转换为Excel的方法
只看楼主
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
结帖率:100%
 问题点数:0 回复次数:24 
Dbf文件转换为Excel的方法
近期常有人问DBF如何转Excel,今做了个表单可解决这一问题。要求VFP9环境,比较完整的Excel(支持VBA)。
可根据Excel的版本,导出多记录文件。当记录超过Sheet的上限,自动导入到下一个表,可防止字符串前面的0丢失。防止身份证等长字符串变成小数。可选择导出的字段。只在I5、Win10、Excel2016上测试过。1500000条记录、300M文件测试过,速度不快5分钟。
Dbf2XLSx.rar (7.53 KB)

VBA中的
.TextFileColumnDataTypes = Array(2, 2, 1, 1, 2,9, 1)
不知VFP如何调用,如能解决,程序效率将更高。
dbf2xls.zip (7.65 KB)


如果没有非法汉字(半个汉字)可以用以下命令。可导出备注字段。
CURSORTOXML("已经打开的表别名或工作区名","XML文件名.xml", 3, 512+16,记录数,"XSD文件名")
说明:1、XML与XSD名可以任意,建议与表同名。
2、记录数说明
0——复制所有记录
其它——从当前记录开始的记录数。
记录数最大数Excel2003及以前为2^16-1,2007及以后2^20-1 (-1是标题行。)
指定数大于实际记录数,按实际数复制。

[此贴子已经被作者于2021-9-2 14:00编辑过]

搜索更多相关主题的帖子: 记录数 Excel 文件 Dbf 记录 
2021-08-28 21:52
nbwww
Rank: 6Rank: 6
等 级:贵宾
威 望:10
帖 子:222
专家分:468
注 册:2021-1-9
得分:0 
学习
2021-08-29 07:52
huasinstamps
Rank: 2
等 级:论坛游民
帖 子:50
专家分:21
注 册:2017-6-1
得分:0 
我用winrar解压怎么显示格式未知或数据已损坏
2021-08-29 16:41
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
回复 3楼 huasinstamps
我的winrar(5.7)版本有点高改为zip格式
dbf2excel.zip (7.94 KB)




[此贴子已经被作者于2021-8-29 17:19编辑过]


dBase有人接盘了。
2021-08-29 17:12
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
导出后的EXCEL表没有一点内容?
2021-08-30 08:44
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
EXCEL版本?只测试了2016

dBase有人接盘了。
2021-08-30 09:21
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 

打开表单时提示:如上图

只求每天有一丁点儿的进步就可以了
2021-08-30 09:22
nbwww
Rank: 6Rank: 6
等 级:贵宾
威 望:10
帖 子:222
专家分:468
注 册:2021-1-9
得分:0 
我也报告一下    EXCEL文件为空  我的也是EXCEL2016的
2021-08-30 13:38
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
从7楼的截图看,好像是dbf文件选错了
我测试很顺利,已经把我的程序改了。
这是我至今为止见到的最好的方法,效率比复制粘贴要快,关键是不报错了,谢谢楼主,多谢多谢!!!

说明,用楼主的提供的程序,导出了zdlx.dbf,后又自己生成了更大数据量的文件,导出都很顺利!!!

[此贴子已经被作者于2021-8-30 14:50编辑过]

2021-08-30 14:49
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
command1.click中
Use (_dbfnm) In 0应该为
Use (_fnm) In 0

dBase有人接盘了。
2021-08-30 15:17



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




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

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