下面是Python导出DBF文件到Excel的完整实例教程:
1. 安装库
首先需要安装以下两个Python库:
- dbfread:用于读取DBF文件
- openpyxl:用于生成Excel文件
在命令行中执行以下命令进行安装:
pip install dbfread openpyxl
2. 读取DBF文件
读取DBF文件的代码如下:
from dbfread import DBF
table = DBF('example.dbf')
print(table.field_names)
for record in table:
print(record)
使用DBF库的DBF()函数读取指定文件名的DBF文件,返回一个Table对象。Table对象可迭代,每次迭代返回一个记录(record),记录是一个字典,字典键是字段名,字典值是字段值。字段名可以通过Table对象的field_names属性获得。
3. 生成Excel文件
生成Excel文件的代码如下:
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.append(table.field_names)
for record in table:
row = [record[field] for field in table.field_names]
ws.append(row)
wb.save('example.xlsx')
使用openpyxl库的Workbook()函数创建一个工作簿对象,调用对象的active属性获得一个Worksheet对象(工作表),并用Worksheet对象的append()方法逐行添加记录到工作表中。
首先用Worksheet对象的append()方法添加标题行,使用Table对象的field_names属性作为标题行数据。
接着对每个记录迭代,使用Table对象的field_names属性获取字段名,通过列表推导式和字典操作获取记录中各个字段的值,最终生成一个行数据列表。
使用Worksheet对象的append()方法把行数据列表追加到工作表中。
最后,使用Workbook对象的save()方法指定要存储的文件名保存工作簿。
4. 示例
下面是两个示例说明:
假设DBF文件(example.dbf)如下:
ID NAME AGE SEX
1 Alice 24 F
2 Bob 22 M
3 Carol 26 F
执行以下代码:
from dbfread import DBF
from openpyxl import Workbook
table = DBF('example.dbf')
print(table.field_names)
for record in table:
print(record)
wb = Workbook()
ws = wb.active
ws.append(table.field_names)
for record in table:
row = [record[field] for field in table.field_names]
ws.append(row)
wb.save('example.xlsx')
运行后输出:
['ID', 'NAME', 'AGE', 'SEX']
OrderedDict([('ID', 1), ('NAME', 'Alice'), ('AGE', 24), ('SEX', 'F')])
OrderedDict([('ID', 2), ('NAME', 'Bob'), ('AGE', 22), ('SEX', 'M')])
OrderedDict([('ID', 3), ('NAME', 'Carol'), ('AGE', 26), ('SEX', 'F')])
此时会生成一个名为example.xlsx的Excel文件,文件内容如下:
ID NAME AGE SEX
1 Alice 24 F
2 Bob 22 M
3 Carol 26 F
假设DBF文件(employees.dbf)如下:
CODE NAME JOB SALARY
100 John Smith Manager 5000
200 Linda Brown Secretary 3000
300 Robert Scott Sales Representative 4000
执行以下代码:
from dbfread import DBF
from openpyxl import Workbook
table = DBF('employees.dbf')
print(table.field_names)
for record in table:
print(record)
wb = Workbook()
ws = wb.active
ws.append(table.field_names)
for record in table:
row = [record[field] for field in table.field_names]
ws.append(row)
wb.save('employees.xlsx')
此时会生成一个名为employees.xlsx的Excel文件,文件内容如下:
CODE NAME JOB SALARY
100 John Smith Manager 5000
200 Linda Brown Secretary 3000
300 Robert Scott Sales Representative 4000
以上是Python导出DBF文件到Excel的完整实例教程,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python导出DBF文件到Excel的方法 - Python技术站