Python项目开发公用方法--excel生成方法

Posted Yonguos

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python项目开发公用方法--excel生成方法相关的知识,希望对你有一定的参考价值。

在实际开发中,我们有时会遇到数据导出的需求。一般的,导出的文件格式为Excel形式。

那么,excel的生成就适合抽离出一个独立的公用方法来实现:

 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

该方法接收必要的数据生成excel,返回最终的路径。

以上是关于Python项目开发公用方法--excel生成方法的主要内容,如果未能解决你的问题,请参考以下文章

python生成合并标题excel

python创建Excel文件数据的方法

java web 导出Excel 的工具类公用实现

python-尝试将Excel文件保存为图片并加上水印

详解随机数的生成

python如何对excel数据进行处理