将EXCEL文件转为DBF文件.
我是直接调用Excel的SaveAs 进行转换的
ExlBook.SaveAs path1 & FileName, FileFormat:=xlDBF4但是问题来了:
在excel中各列的数据如果超过列宽时,可能会将过长数据截断.这样导致DBF数据不完整.
如何解决,要设置excel的列宽还是要设置DBF的列宽?如何根据数据的长短设置相应的列宽(毕竟固定一个大的列宽不好)?
如何操作.
给个VB示范代码吧?谢谢!

解决方案 »

  1.   

        ExlBook.Cells.Select
        ExlBook.Selection.Columns.AutoFit
        ExlBook.Range("A1").Select
        ExlBook.SaveAs path1 & FileName, FileFormat:=xlDBF4 
    先让EXCEL执行[最适合的列宽],再存.
      

  2.   

        ExlBook.Cells.Select 
        ExlBook.Selection.Columns.AutoFit 
        ExlBook.Range("A1").Select

        ExlBook.SaveAs path1 & FileName, FileFormat:=xlDBF4 
    先让EXCEL执行[最适合的列宽],再存. 
      

  3.   

    你可以创建一个DBF文件模板,然后读出Excel文件的内容,填写入DBF文件中。
      

  4.   

    用您的代码问题已经解决,谢谢,但还有小问题,当整个sheet为空值时,另存为DBF时错误,如何判断Cell的值为空值,只要判断是空值我就能跳过,不执行转换.
    像下面可以吗?大家也来看看!
    If ExlSheet.Cells(1, 1).Value = "" Then If ExlSheet.Cells(1, 1).Text= "" Then 
    上面两种的区别是?哪种适合对于判断Cell为空值? 
      

  5.   

    If ExlSheet.Cells(1, 1)= "" Then '就行了,这样就能判断第一个单元格是不是空的了.
      

  6.   

    ExlSheet.Cells(1, 1).Value 这个一般是指数值量,也就是数字量
    ExlSheet.Cells(1, 1).Text  这个一般是文本量,也字符串量我们判断一个单元格是不是空不用以上方法,而用以下方法就比较通用:
    If ExlSheet.Cells(1, 1)= "" Then