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模板生成不同部署环境下的配置文件
在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据 ...
随机推荐
- MRP-MD04 中的函数
1.需求溯源 : MD_PEGGING_NODIALOG 2.实时库存 : MD_STOCK_REQUIREMENTS_LIST_API 这个函数中MDPSX 和 MDEZX 是通过 MDPS 的 I ...
- dedecms列表页如何调用栏目关键词和描述
问:dedecms列表页如何调用栏目关键词和描述 答:有人问起dedecms列表页如何调用栏目关键词和描述.解答如下: 自己实验了下总结方法如下:(以下方法使用于栏目封面和列表和内容页,其他的地方没有 ...
- Bug不能重现的原因分析及其对策
摘 要:本文简要分析了无法重现的Bug的可能产生原因,包括环境不一致.缺少最准确的描述和浏览器的不当设置.针对这些原因,本文给出了相应的对策.通过这些措施,可以重现许多以前认为不可重现的Bug. ...
- windows下安装composer流程
1.php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 2. php -r &quo ...
- BZOJ_2097_[Usaco2010 Dec]Exercise 奶牛健美操_二分答案+树形DP
BZOJ_2097_[Usaco2010 Dec]Exercise 奶牛健美操_二分答案+树形DP Description Farmer John为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间 的 ...
- 「LuoguP4752」牧 Divided Prime(判质数
Description 给定一个数字 A,这个 A 由 a1,a2,⋯,aN相乘得到. 给定一个数字 B,这个 B 由 b1,b2,⋯,bM相乘得到. 如果 A/B 是一个质数,请输出YES,否则输出 ...
- Python项目使用memcached缓存
前言许多Web应用都将数据保存到MySQL这样的关系型数据库管理系统中,应用服务器从中读取数据并在浏览器中显示. 但随着数据量的增大.访问的集中,就会出现数据库的负担加重.数据库响应恶化. 网站显示延 ...
- HTTP node静态资源请求加载demo
MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个简单的字符串组成, ...
- python-day-9- 进程-异步IO\
本节内容 进程 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 多进程multiprocessing multiprocessing is a package that sup ...
- 【旧文章搬运】无Device的驱动如何通信
原文发表于百度空间,2009-07-14========================================================================== 标准的驱动 ...