Python项目开发公用方法--excel生成方法
2021-07-05 08:07
标签:方法 返回 标题 .property 导出 style 数据导出 注意 建议 在实际开发中,我们有时会遇到数据导出的需求。一般的,导出的文件格式为Excel形式。 那么,excel的生成就适合抽离出一个独立的公用方法来实现: 该方法接收必要的数据生成excel,返回最终的路径。 Python项目开发公用方法--excel生成方法 标签:方法 返回 标题 .property 导出 style 数据导出 注意 建议 原文地址:https://www.cnblogs.com/yonguo123/p/9598378.html 1 def generate_excel(excel_name, title_list, properties, data):
2 """
3 生成指定的excel文件,并返回文件的路径,文件保存在static/files/excels下,并自动追加时间戳
4 :param excel_name: 文件名, 注意不要带文件类型后缀
5 :param title_list: 标题
6 :param properties: 对应的属性名,方法按照".property_name"的方式获取值
7 :param data: 数据,建议为query_set
8 :return: 生成文件的全路径
9 """
10 now = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
11 workbook = xlsxwriter.Workbook("{}/{}{}.xlsx".format(EXCEL_DIR, excel_name, now))
12 worksheet = workbook.add_worksheet(excel_name)
13 worksheet.set_first_sheet()
14 for i in range(len(title_list)):
15 worksheet.set_column(‘{}:{}‘.format(chr(65 + i), chr(66 + i)), 20)
16
17 excel_format = workbook.add_format()
18 excel_format.set_border(1)
19 excel_format.set_align(‘center‘)
20 excel_format.set_text_wrap()
21
22 format_title = workbook.add_format()
23 format_title.set_border(1)
24 format_title.set_bg_color(‘#cccccc‘)
25 format_title.set_align(‘center‘)
26 format_title.set_bold()
27
28 # 表头
29 worksheet.write_row(‘A1‘, title_list, format_title)
30 i = 2
31 for datum in data:
32 location = ‘A‘ + str(i)
33 worksheet.write_row(location, [eval("datum.{}".format(key)) for key in properties], excel_format)
34 i += 1
35
36 workbook.close()
37 file_path = "{}/{}{}.xlsx".format(EXCEL_DIR, excel_name, now)
38 if file_path:
39 os.chmod(file_path, 0777)
40 return file_path
上一篇:Python学习 (楚才国科)