| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4963 人关注过本帖, 2 人收藏
标题:Dbf文件转换为Excel的方法
取消只看楼主 加入收藏
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
结帖率:100%
收藏(2)
 问题点数:0 回复次数:8 
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
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册: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
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
EXCEL版本?只测试了2016

dBase有人接盘了。
2021-08-30 09:21
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
command1.click中
Use (_dbfnm) In 0应该为
Use (_fnm) In 0

dBase有人接盘了。
2021-08-30 15:17
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
回复 8楼 nbwww
文件(夹)名中有空格,或有备注字段,正在解决……

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


dBase有人接盘了。
2021-08-30 16:18
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
文件(夹)名中有空格的问题已经解决。备注字段暂时无法导出,如果需要可以逐记录向Excel表中写,但速度可能比较慢。
dbf2xls.zip (7.65 KB)

dBase有人接盘了。
2021-08-30 16:51
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
回复 7楼 wengjl
VFP7.0、8.0可以用
use dbf2xcel.scx
go 23
打开Properties将
Alignment = 2
改为Alignment = 1或删除、或改为你的版本的默认值(我没用过7、8不知道是什么)试试。


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


dBase有人接盘了。
2021-08-30 17:42
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
经测试,将DBF导出到其它文件,最好的方法还是用COM,逐个记录、逐个字段地写入。其它方法都会丢数据。(主要是数据中有非常可视字符时。)

dBase有人接盘了。
2021-08-30 22:10
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
如果没有非法汉字(半个汉字)可以用以下命令。(包括备注字段也可正常导出)
CURSORTOXML("已经打开的表别名或工作区名","XML文件名.xml", 3, 512+16,记录数,"XSD文件名")
1、XML与XSD名可以任意,建议与表同名。
2、记录数
0——复制所有记录
其它——从当前记录开始的记录数。
记录数最大数Excel2003及以前为2^16-1,2007及以后2^20-1 (-1是标题行。)
指定数大于表中实际记录数,按实际数复制,不会出错。

dBase有人接盘了。
2021-09-08 10:44
快速回复:Dbf文件转换为Excel的方法
数据加载中...
 
   



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

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