经常有人需要把DBF文件转换为XLS文件,但是现在好多都是单个转换的,没有批量转换的。因此针对这个问题,做了一个批量DBF转换为XLS。其实是老婆要用这个功能o(∩_∩)o...。她计算机没装.net,因此只好用VB编了。没什么难度,比较适合有同样需要的人使用,附上完全代码,供初学者学习。自己感觉对问题分析的还比较到位。
源码已经上传至:http://download.csdn.net/user/binsweet/
其中涉及到的重点问题:
1、DBF转换核心思路
一般情况下,都是把DBF当作数据库处理,用ado读出数据后,连接Excel,然后再写进去就可以了。我感觉比较麻烦,就偷了个懒,先DBF文件以二进制形式读进剪贴板,然后打开Excel,然后粘贴就可以了。但是我估计如果DBF文件过大,超过剪贴板的大小,就会失败的。好在老婆用到的DBF文件都是几百K以内。先就这样吧。
//
读写二进制文件,存入剪贴板
Open txtFilePath.Text
For
Binary
As
#Handle
FileString
=
Space
(
FileLen
(txtFilePath.Text))
Get
#Handle, , FileString
Close #Handle
Clipboard.Clear
Clipboard.SetText FileString
//
粘贴进Excel
Set
xlsheet
=
xlBook.Worksheets(
1
)
'
设置活动工作表
xlsheet.Paste
2、操作Excel
这个不难
一般流程
//
定义对象
Dim
xlApp
As
Excel.Application
'
定义EXCEL类
Dim
xlBook
As
Excel.Workbook
'
定义工件簿类
Dim
xlsheet
As
Excel.Worksheet
'
定义工作表类
Set
xlApp
=
CreateObject
(
"
Excel.Application
"
)
'
创建EXCEL对象
Set
xlBook
=
xlApp.Workbooks.Add
xlApp.Visible
=
False
'
设置EXCEL对象可见(或不可见)
//
使用对象
...........
//
使用完后,关闭对象释放内存
xlBook.Close (
True
)
'
关闭工作簿
xlApp.Quit
'
结束EXCEL对象
Set
xlsheet
=
Nothing
Set
xlBook
=
Nothing
Set
xlApp
=
Nothing
'
释放xlApp对象
3、文件遍历
这个也比较简单。我只实现了单个目录下文件的遍历,不含字文件夹。有兴趣的可以递归一下实现。
//
循环遍历
sFile
=
Dir(mPath
+
"
*.dbf
"
, vbNormal
+
vbArchive
+
vbHidden)
Do
While
Len
(sFile)
>
0
sFile
=
UCase
(
Trim
(sFile))
//
使用sFile
...........
//
继续遍历
sFile
=
Dir
Loop
本文介绍了一种使用VB批量将DBF文件转换为XLS文件的方法,通过将DBF读取为二进制并利用Excel进行粘贴操作。提供了源码链接,适用于初学者学习。

2824

被折叠的 条评论
为什么被折叠?



