DBF批量转换为XLS

         经常有人需要把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   

你可能感兴趣的:(DBF批量转换为XLS)