在实际的项目开发中,一些重要数据需要保存到excel文件中,或者需要提供下载的功能,都会用到将数据导出excel的代码。
本文介绍了将数据导出excel的通用python代码,对创建excel文件、写数据等过程进行了封装,开箱即用,且可复用。
import string
import xlsxwriter
from faker import Faker
def export_to_excel(filename, col_items, datas):
"""将信息导出为excel文件
Args:
filename (str): 文件名
col_items (list): 列名
datas (list): 数据信息
"""
# 生成.xlsx文件
workbook = xlsxwriter.Workbook(f'{filename}.xlsx')
# 设置sheet页签名称
table = workbook.add_worksheet(filename)
# 表头居中,背景灰色,字体颜色为白色
header_format = workbook.add_format({'align': 'center',
'bg_color': 'gray',
"color": "white",
"font": "宋体",
"bold": True,
"border": 1})
# 数据样式:居中,带边框,字体
data_format = workbook.add_format({'align': 'center', "border": 1})
data_format.set_font("Calibri Light")
# 26个英文字母,大写
chars = string.ascii_uppercase
# 设置列名及宽度
for idx, col in enumerate(col_items):
# 列名,宽度
col_name, col_width = col
col_code = chars[idx]
# 写入列名
table.write(0, idx, col_name, header_format)
table.set_column(f'{col_code}:{col_code}', col_width)
# 列数
col_num = len(col_items)
# 循环写入数据
for index, item in enumerate(datas):
# 一行为一条数据
row = index + 1
for i in range(col_num):
table.write(row, i, item[i], data_format)
# 关闭
workbook.close()
if __name__ == "__main__":
# 构造数据
faker_obj = Faker(locale='zh')
# 文件名
filename ='人员名单'
# 列名
cols = [('序号', 10), ('姓名', 20)]
# 构造数据
datas= []
for i in range(10):
datas.append((i + 1, faker_obj.name()))
# 将数据信息导出到excel文件中
export_to_excel(filename, cols, datas)
测试上述代码,生成的excel文件如下图所示: