DBF批量转换为XLS

时间:2022-09-13 14:00:08

         经常有人需要把DBF文件转换为XLS文件,但是现在好多都是单个转换的,没有批量转换的。因此针对这个问题,做了一个批量DBF转换为XLS。其实是老婆要用这个功能o(∩_∩)o...。她计算机没装.net,因此只好用VB编了。没什么难度,比较适合有同样需要的人使用,附上完全代码,供初学者学习。自己感觉对问题分析的还比较到位。

DBF批量转换为XLS

源码已经上传至:http://download.csdn.net/user/binsweet/

其中涉及到的重点问题:

1、DBF转换核心思路

一般情况下,都是把DBF当作数据库处理,用ado读出数据后,连接Excel,然后再写进去就可以了。我感觉比较麻烦,就偷了个懒,先DBF文件以二进制形式读进剪贴板,然后打开Excel,然后粘贴就可以了。但是我估计如果DBF文件过大,超过剪贴板的大小,就会失败的。好在老婆用到的DBF文件都是几百K以内。先就这样吧。

 

DBF批量转换为XLS    //读写二进制文件,存入剪贴板
DBF批量转换为XLS    Open txtFilePath.Text 
For Binary As #Handle
DBF批量转换为XLS    FileString 
= Space(FileLen(txtFilePath.Text))
DBF批量转换为XLS    
Get #Handle, , FileString
DBF批量转换为XLS    Close #Handle
DBF批量转换为XLS    Clipboard.Clear
DBF批量转换为XLS    Clipboard.SetText FileString
DBF批量转换为XLS    
DBF批量转换为XLS    
//粘贴进Excel
DBF批量转换为XLS    
Set xlsheet = xlBook.Worksheets(1'设置活动工作表
DBF批量转换为XLS
    xlsheet.Paste

 

2、操作Excel

这个不难

一般流程

 

DBF批量转换为XLS    //定义对象
DBF批量转换为XLS    
Dim xlApp As Excel.Application '定义EXCEL类
DBF批量转换为XLS
    Dim xlBook As Excel.Workbook '定义工件簿类
DBF批量转换为XLS
    Dim xlsheet As Excel.Worksheet '定义工作表类
DBF批量转换为XLS
    Set xlApp = CreateObject("Excel.Application"'创建EXCEL对象
DBF批量转换为XLS
    Set xlBook = xlApp.Workbooks.Add
DBF批量转换为XLS    xlApp.Visible 
= False '设置EXCEL对象可见(或不可见)
DBF批量转换为XLS

DBF批量转换为XLS    
//使用对象
DBF批量转换为XLS    ...........
DBF批量转换为XLS
DBF批量转换为XLS    
//使用完后,关闭对象释放内存
DBF批量转换为XLS    xlBook.Close (
True'关闭工作簿
DBF批量转换为XLS
    xlApp.Quit '结束EXCEL对象
DBF批量转换为XLS

DBF批量转换为XLS    
Set xlsheet = Nothing
DBF批量转换为XLS    
Set xlBook = Nothing
DBF批量转换为XLS    
Set xlApp = Nothing '释放xlApp对象

 

3、文件遍历

这个也比较简单。我只实现了单个目录下文件的遍历,不含字文件夹。有兴趣的可以递归一下实现。

 

DBF批量转换为XLS    //循环遍历
DBF批量转换为XLS    sFile 
= Dir(mPath + "*.dbf", vbNormal + vbArchive + vbHidden)
DBF批量转换为XLS    
Do While Len(sFile) > 0
DBF批量转换为XLS        sFile 
= UCase(Trim(sFile))
DBF批量转换为XLS        
//使用sFile
DBF批量转换为XLS        ...........
DBF批量转换为XLS        
//继续遍历
DBF批量转换为XLS  
DBF批量转换为XLS        sFile 
= Dir
DBF批量转换为XLS    
Loop