将.DBF转换为.csv时出现BadDataError

时间:2016-09-27 07:17:33

标签: python excel python-3.x dbf

我正在尝试使用Python3将.DBF文件转换为.csv。我正在尝试使用dbf库(https://pypi.python.org/pypi/dbf

import dbf 

def dbf_to_csv(dbf_file_name, csv_file_name):
    dbf_file = dbf.Table(dbf_file_name, ignore_memos=True)
    dbf_file.open() 
    dbf.export(dbf_file, filename = csv_file_name, format='csv', header=True)

我正在使用的DBF文件可以在Excel中打开,看起来没问题。但是,当我运行上面的方法时,我在上面的dbf.export行上得到一个错误:

dbf.ver_33.BadDataError: record data is not the correct length (should be 1442, not 1438)

dbf文件在Excel中打开正常,但是,我需要自动执行此转换。为了让这个方法从.DBF文件创建pdf,我应该做些什么呢?

1 个答案:

答案 0 :(得分:0)

如果文件在Excel中正确打开,那么我建议您使用Excel为您转换为Glide.With(context).Load("GifUrl") .Placeholder(Resource.Drawable.placeholder) .DiskCacheStrategy(DiskCacheStrategy.Source) .Into(viewHolder.propertyImageView); 格式,如下所示:

csv

不要忘记添加所需文件的完整路径。请注意,import win32com.client as win32 excel = win32.gencache.EnsureDispatch('Excel.Application') wb = excel.Workbooks.Open(r"input.dbf") excel.DisplayAlerts = False wb.DoNotPromptForConvert = True wb.CheckCompatibility = False wb.SaveAs(r"output.csv", FileFormat=6, ConflictResolution=2) excel.Application.Quit() 告诉Excel以FileFormat=6格式保存文件。

要将工作簿导出为PDF,您可以使用:

CSV

如果您尚未安装wb.ExportAsFixedFormat(0, r"output.pdf") ,则应该能够使用以下内容:

win32com

此解决方案仅适用于Windows安装。