# -*-encoding utf-8 -*-
from dbfread import DBF
import xlwt
import os
def dbf2xls(dbfilename, exfilename):#定义方法
table = DBF(dbfilename, encoding='GBK')
all_sheet = []
book = xlwt.Workbook() # 新建一个excel
sheet = book.add_sheet('all_sheet') # 添加一个sheet页
row = 0 # 控制行数
write_row = 0
sheet_list = []
for record in table:
col = 0
if all_sheet == []: # 这个为了控制只读取字段名一次
sheet_dict = record.keys()
# print(type(sheet_dict)) # <class 'odict_keys'>
sheet_list = list(set(sheet_dict)) # 将odict_keys转化为列表进行操作
all_sheet = sheet_list
if write_row == 0: # 为了控制只将字段名写入一次
col = 0
for i in range(len(sheet_list)):
sheet.write(row, col, sheet_list[i])
col += 1
col = 0
row += 1
write_row += 1
for field in record:
sheet.write(row, col, record[field])
# print(field,'=',record[field],end='')
col += 1
row += 1
book.save(exfilename)
path="D:\\data\\dbf\\"
files = os.listdir(path)
print(files)
for dbfilename in files:
if dbfilename[-4:]==".dbf":
exfilename=dbfilename[0:-4]+".xls"
dbf2xls(path+dbfilename, path+exfilename)