簡體   English   中英

.DBF轉換為.csv時出現BadDataError

[英]BadDataError when converting .DBF to .csv

我正在嘗試使用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)

可以在Excel中打開我正在使用的DBF文件,看起來不錯。 但是,當我運行上述方法時,在上面的dbf.export行上出現錯誤:

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

dbf文件可以在Excel中正常打開,但是,我需要自動執行此轉換。 為了使此方法從.DBF文件創建pdf,我應該做些什么?

如果該文件已在Excel中正確打開,則建議您使用Excel如下進行轉換為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()

不要忘記將完整路徑添加到所需文件。 注意, FileFormat=6告訴Excel將文件保存為CSV格式。

要將工作簿導出為PDF,可以使用:

wb.ExportAsFixedFormat(0, r"output.pdf")

如果尚未安裝win32com ,則應該可以使用以下軟件:

pip install pypiwin32

此解決方案僅適用於Windows安裝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM