Python项目开发公用方法--excel生成方法
在实际开发中,我们有时会遇到数据导出的需求。一般的,导出的文件格式为Excel形式。
那么,excel的生成就适合抽离出一个独立的公用方法来实现:
- def generate_excel(excel_name, title_list, properties, data):
- """
- 生成指定的excel文件,并返回文件的路径,文件保存在static/files/excels下,并自动追加时间戳
- :param excel_name: 文件名, 注意不要带文件类型后缀
- :param title_list: 标题
- :param properties: 对应的属性名,方法按照".property_name"的方式获取值
- :param data: 数据,建议为query_set
- :return: 生成文件的全路径
- """
- now = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
- workbook = xlsxwriter.Workbook("{}/{}{}.xlsx".format(EXCEL_DIR, excel_name, now))
- worksheet = workbook.add_worksheet(excel_name)
- worksheet.set_first_sheet()
- for i in range(len(title_list)):
- worksheet.set_column('{}:{}'.format(chr(65 + i), chr(66 + i)), 20)
- excel_format = workbook.add_format()
- excel_format.set_border(1)
- excel_format.set_align('center')
- excel_format.set_text_wrap()
- format_title = workbook.add_format()
- format_title.set_border(1)
- format_title.set_bg_color('#cccccc')
- format_title.set_align('center')
- format_title.set_bold()
- # 表头
- worksheet.write_row('A1', title_list, format_title)
- i = 2
- for datum in data:
- location = 'A' + str(i)
- worksheet.write_row(location, [eval("datum.{}".format(key)) for key in properties], excel_format)
- i += 1
- workbook.close()
- file_path = "{}/{}{}.xlsx".format(EXCEL_DIR, excel_name, now)
- if file_path:
- os.chmod(file_path, 0777)
- return file_path
该方法接收必要的数据生成excel,返回最终的路径。
Python项目开发公用方法--excel生成方法的更多相关文章
- Python导出DBF文件到Excel的方法
Python导出DBF文件到Excel的方法 这篇文章主要介绍了Python导出DBF文件到Excel的方法,实例分析了Python基于win32com模块实现文件导出与转换的相关技巧,分享给大家供大 ...
- python项目开发视频
精品Python项目开发学习视频 所属网站分类: 资源下载 > python视频教程 作者:乐天派 链接:http://www.pythonheidong.com/blog/article/44 ...
- IDEA 学习笔记之 Python项目开发
Python项目开发: 下载Python: https://www.python.org/downloads/release/python-363/ 安装Python: 配置环境变量(path): C ...
- python项目实现配置统一管理的方法
一个比较大的项目总是会涉及到很多的参数,最好的方法就是在一个地方统一管理这些参数.最近看了不少的python项目,总结了两种很有意思的配置管理方法. 第一种 基于easydict实现的配置管理 首先需 ...
- Python - 集成开发环境Pycharm的使用方法和技巧
PyCharm HomePage:PyCharm 我的Pycharm,我做主 Getting Started with PyCharm Pycharm使用技巧 Documentation & ...
- Python集成开发工具Pycharm的使用方法:复制,撤销上一步....
复制行,在代码行光标后,输入Ctrl + d ,即为复制一行,输入多次即为复制多行 撤销上一步操作:Ctrl + z 为多行代码加注释# 代码选中的条件下,同时按住 Ctrl+/,被选中行被注释,再 ...
- python调取C/C++的dll生成方法
本文针对Windows平台下,python调取C/C++的dll文件. 1.如果使用C语言,代码如下,文件名为test.c. __declspec(dllexport) int sum(int a,i ...
- 在实际项目开发中keil的调试方法
转载2015-06-14 20:23:04 一.在keilc的调试状态下,如何观察各个片内外设的运行状态?如何修改它们的设置? 在调试状态下,点击Peripherals菜单下的不同外设选项命令,就会 ...
- (转)python调取C/C++的dll生成方法
本文针对Windows平台下,python调取C/C++的dll文件. 1.如果使用C语言,代码如下,文件名为test.c. __declspec(dllexport) int sum(int a,i ...
随机推荐
- python编程系列---args与kwargs详解
args与kwargs详解 """ Process([group [, target [, name [, args [, kwargs]]]]]) - target:目 ...
- postman使用实例
以下以一个登录接口为例,介绍一下postman是如何发请求的. 先执行Pre-request Scripts(预处理) - body - tests(进行断言) postman中变量的引用: {{}}
- 自然语言处理(NLP)
苹果语音助手Siri的工作流程: 听 懂 思考 组织语言 回答 这其中每一步骤涉及的流程为: 语音识别 自然语言处理 - 语义分析 逻辑分析 - 结合业务场景与上下文 自然语言处理 - 分析结果生成自 ...
- Arduino学习笔记⑤ 模拟IO实验
1.前言 还记得前几个我们都是在讲解数字IO,而其实我们生活中大多数信号都是模拟信号,如声音以及温度变化.在Arduino中,常用0~5v的电压来表示模拟信号. 1.1 模拟输入功能 ...
- 百万年薪python之路 -- HTML基础
一. Web标准 web标准: w3c:万维网联盟组织,用来制定web标准的机构(组织) web标准:制作网页遵循的规范 web标准规范的分类:结构标准.表现标准.行为标准. 结构:html.表示:c ...
- Spring Boot 开发微信公众号后台
Hello 各位小伙伴,松哥今天要和大家聊一个有意思的话题,就是使用 Spring Boot 开发微信公众号后台. 很多小伙伴可能注意到松哥的个人网站(http://www.javaboy.org)前 ...
- GO基础之数组
一.数组的声明与遍历 package main import "fmt" //声明数组的形式1 ]int ], , , } func main() { // 声明数组的形式2 a ...
- Spring MVC(1)Spring MVC的初始化和流程以及SSM的实现
一.Spring MVC概述 1.Spring MVC 的架构 对于持久层而言,随着软件的发展,迁移数据库的可能性很小,所以在大部分情况下都用不到Hibernate的HQL来满足迁移数据库的要求.与此 ...
- SVM详细笔记及总结
本文精品,如有疑问欢迎留言or微信咨询:523331232
- redis面试题及答案
1. Redis有哪些数据结构? 2. 使用过Redis分布式锁么,它是什么回事? 3. 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来? ...