python工具之exccel模板生成报表
from Db import Db
from log import log
import xlwt
import xlrd
from xlutils.copy import copy
import sys
import os
from sched import sched
from datetime import datetime
import config sql = '''
''' @sched.scheduled_job('cron', second='', minute='', hour='10,14', id='supplierXlsGen')
# @sched.scheduled_job('cron',second='*/1',id='supplierXlsGen')
def supplierXlsGen():
try:
descfilePath = config.descfilePath + datetime.now().strftime('%Y%m%d_%H%M%S')
if not os.path.exists(descfilePath):
os.mkdir(descfilePath)
# 获取所有模板,对模板进行遍历即可
temlist = os.listdir(sys.path[0] + '/template/')
for tem in temlist:
log.info('开始处理%s' % tem)
# 根据文件名获取供应商id
id = tem.split('.')[0]
db = Db()
# 获取数据源
data = db.query(sql, (id))
if len(data) == 0:
log.info('数据为空,不处理')
continue
xls = xlrd.open_workbook(sys.path[0] + '/template/' + tem)
excel = copy(xls)
sheets = xls.sheets()
# 解决多sheet兼容问题
for tableidx, temtable in enumerate(sheets):
# table = xls.sheets()[0]
# 获取模板取的字段
collist = temtable.row_values(1)
table = excel.get_sheet(tableidx)
for idx, d in enumerate(data):
for i, col in enumerate(collist):
if col != '':
# 判断下数据类型
if type(d[col]) == datetime:
table.write(
idx + 1, i, d[col].strftime('%Y-%m-%d %H:%M:%S'))
else:
table.write(idx + 1, i, d[col])
dateStr = datetime.now().strftime('%Y%m%d_%H%M%S')
# 获取供应商名称
name = db.queryOne(
'SELECT * from qmall_supplier where id=%s', (id))['name']
excel.save(descfilePath + "/%s_%s_%s.xls" % (id, name, dateStr))
log.info('处理结束')
tarfileName = datetime.now().strftime('%Y%m%d_%H%M%S') + '.tar'
os.system('tar -cvPf /mall_image/report/deliverXls/%s %s' %
(tarfileName, descfilePath))
except Exception as e:
log.error(e)
log.info('处理完成')
python工具之exccel模板生成报表的更多相关文章
- 根据模板导出Excel报表并复制模板生成多个Sheet页
因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为 根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时 ...
- 使用java Apache poi 根据word模板生成word报表
项目开发过程中,客户提出一堆导出报表的需求,需要导出word格式,页眉还需要加上客户公司的logo,试了几种方案,最后选择了用 Apache poi 加上自定义标签的方式实现. 目前功能还比较简单,一 ...
- 使用FastReport报表工具生成报表PDF文档
在我们开发某个系统的时候,客户总会提出一些特定的报表需求,固定的报表格式符合他们的业务处理需要,也贴合他们的工作场景,因此我们尽可能做出符合他们实际需要的报表,这样我们的系统会得到更好的认同感.本篇随 ...
- ASP.NET MVC 4.0 中使用NPOI 2.2.0 按模板生成Excel报表
使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/ ...
- 使用Python定时执行一任务,自动登录某web系统,生成报表,然后发送邮件给指定人员
一.项目需求 每周从A系统生成一张Excel报表,发送此报表给指定人员,相关人员依据此报表去完成后续的工作. 项目限制: 1.无法通过EDI系统交互的方式从后台读取数据 2.由于公司网络环境限制,不能 ...
- 使用python获取整月每一天的系统监控数据生成报表
1.安装阿里开源监控工具tsar tsar官方网站 wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-c ...
- Python 写了一个批量生成文件夹和批量重命名的工具
Python 写了一个批量生成文件夹和批量重命名的工具 目录 Python 写了一个批量生成文件夹和批量重命名的工具 演示 功能 1. 可以读取excel内容,使用excel单元格内容进行新建文件夹, ...
- python/数据库操作补充—模板—Session
python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...
- 使用T4模板生成不同部署环境下的配置文件
在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据 ...
随机推荐
- 从小姐姐博客那里看到的流光文字(CSS3 animate)
对于流光文字,大家并不陌生,毕竟我们都经历过非主流的时代.你们卟懂绯紸流!色彩缤纷的QQ空间...... 还记得那些炫酷的签名档,或者那些炫酷的动态头像.不过大家对于流光文字的印象还是图片.那么在网页 ...
- spring cloud - config 属性自动刷新
启动config-server,启动成功后就不需要在管了; 在config-client做些修改: 在使用的controller或service的类上加上一个注解@RefreshScope 在pom中 ...
- (C)理解#define write(b,addr) (void)((*(volatile unsigned int *) (addr)) = (b))
理解 #define write(b,addr) (void)((*(volatile unsigned int *) (addr)) = (b)) 嵌入式系统编程,要求程序员能够利用C语言访问固 ...
- 织梦DedeCMS信息发布员发布文章默认自动审核更新并生成HTML页面
织梦DedeCMS信息发布员发布文章默认自动审核更新并生成HTML页面 一直以为DEDECMS的信息发布员在后台发布文章后,非要管理员审核才能显示,今天一哥们问我这个问题.问:“能不能直接发布,并自动 ...
- 修改fuse库成功
使用的是fuse-2.9.2 在lib目录下的helper.c的fuse_main_real函数里打印一句话,然后将fuse库编译并install. 对ssfs进行编译,运行后,出现了打印的那句话! ...
- I.MX6 Parallel RGB LCD Datasheet描述
/******************************************************************** * I.MX6 Parallel RGB LCD Datas ...
- python-dev 安装错误
/******************************************************************** * python-dev 安装错误 * 说明: * 今天在安 ...
- linux--memcache的安装和使用(转)
memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.据说官方所说,其用户包括twitter.digg.flickr等,都是些互联网大腕呀.目前用memca ...
- unix网络编程环境配置程序运行
1 查看ubuntu版本 cat /etc/issue 2 查看版本 cat /proc/version 3 下载 你可以通过其他方式下载 这里下载好了 文件名为unpv13e 4 开始配置 (1)c ...
- python学习笔记1-基础语法
1 在3版本中print需要加上括号2 多行语句:用\连接 item_one=1 item_two=2 item_three=3 total = item_one + \ item_two + \ i ...