python生成word文档_python实现的生成word文档功能示例
本文实例讲述了python实现的生成word文档功能。分享给大家供大家参考,具体如下:
每月1次的测试费用报销,需要做一个文档。干脆花点时间写个程序吧。
# -*- coding: utf-8 -*-
from tools import get_data
from docx import Document
def new_doc(fee_data,doc_path,fee):#新建一个word文档,写入汇总表的数据
document = Document()
p_total = document.add_paragraph()
r_total = p_total.add_run(u'测试订单费用汇总表:')
r_total.font.bold = True
table = document.add_table(1,5,style="Light List Accent 5")
heading_cells = table.rows[0].cells
heading_cells[0].text = u'序号'
heading_cells[1].text = u'订单号'
heading_cells[2].text = u'订单总额'
heading_cells[3].text = u'运费'
heading_cells[4].text = u'实付金额'
total = 0
for i in range(0,len(fee_data)):
cells = table.add_row().cells
cells[0].text = str(i+1)
cells[1].text = str(fee_data[i][0])
cells[2].text = str(float(fee_data[i][1])/100)
cells[3].text = str(float(fee_data[i][2])/100)
cells[4].text = str(float(fee_data[i][3])/100)
total = total + fee_data[i][3]
if total > fee:#如果实付总额大于传入的金额,终止写入数据,并记录序号
number = i
break
total = str(float(total)/100)
document.add_paragraph(u'实付金额总计:' + total + u' 元。')
document.add_paragraph()
p_detail = document.add_paragraph()
r_detail = p_detail.add_run(u'测试订单明细:')
r_detail.font.bold = True
for i in range(0,number+1):
order_no = str(fee_data[i][0])
paid_amount = str(float(fee_data[i][3])/100)
row_str = str(i+1) + '.' + u'订单号:' + order_no + u'实付金额:' + paid_amount + u'元。'
document.add_paragraph(row_str)
document.save(doc_path)
if __name__ == "__main__":
#sql语句筛选实付金额在5元和39元之间的订单
sql = "SELECT outer_order_id,order_amount,real_shipping_amount,paid_amount FROM oh_order_info WHERE " \
"order_create_time between '2017-12-01 9:00:00' and '2017-12-27 9:00:00' " \
"AND paid_amount between '500' and '3900'"
fee_data = get_data(sql)
doc_path = r'd:\yuzhong.docx'
fee = 12300 #多少元以上,单位:分
new_doc(fee_data,doc_path,fee)
使用到的tools文件中get_data函数
# -*- coding: utf-8 -*-
import MySQLdb
import conf
def get_data(*sql_list):#根据sql语句,获取数据库的数据
conn = MySQLdb.connect(conf.test_dbhost,conf.test_user,conf.test_passd,conf.test_dbname,port=3306,charset="utf8")
cur = conn.cursor()
for sql in sql_list:
cur.execute(sql)
conn.commit()
results = cur.fetchall()
cur.close()
conn.close()
return results
conf文件中记录的数据库帐号和密码。
运行结果:
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
python生成word文档_python实现的生成word文档功能示例相关推荐
- python统计文章单词次数_Python实现的统计文章单词次数功能示例
本文实例讲述了Python实现的统计文章单词次数功能.分享给大家供大家参考,具体如下: 题目是这样的:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认 ...
- python如何画贝塞尔曲线_Python使用matplotlib实现绘制自定义图形功能示例
本文实例讲述了Python使用matplotlib实现绘制自定义图形功能.分享给大家供大家参考,具体如下: 一 代码 from matplotlib.path importPath from matp ...
- python获取电脑硬件信息_Python实现的读取电脑硬件信息功能示例
本文实例讲述了Python实现的读取电脑硬件信息功能.分享给大家供大家参考,具体如下: 上学那会,老师让我用java获取电脑硬件信息,CPU, 硬盘,MAC等,那个时候感觉搞了好久...... 今天, ...
- python字典遍历 没有顺序_Python实现字典的遍历与排序功能示例
本文实例讲述了Python实现字典的遍历与排序功能.分享给大家供大家参考,具体如下: 字典的遍历: 首先: items(): 功能:以列表的形式返回字典键值对 eg: dict_={"a&q ...
- python实现模拟浏览器登录_Python使用win32com实现的模拟浏览器功能示例
本文实例讲述了Python使用win32com实现的模拟浏览器功能.分享给大家供大家参考,具体如下: # -*- coding:UTF-8 -*- #!/user/bin/env python ''' ...
- python微信推送消息_Python实现微信推送模板消息功能示例
这篇文章主要介绍了Python编程之微信推送模板消息功能,结合实例形式分析了Python微信推送消息接口的调用相关操作技巧,需要的朋友可以参考下 本文实例讲述了Python微信推送模板消息功能.分享给 ...
- python自动生成word版本试卷_Python解决问题:生成包含加减练习题的Word文件
简 介 这里 小朋友假期作业有一项是每天做50道题的口算.之前的题目做完了,网上看到的习题集又木有合适的,再不然就是电子版本无法下载的,心想还是自己动手丰衣足食吧. 01 重点和难点 1F ...
- python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel
作者:青春阳光king python实现word转成自定义格式的excel文档(解决思路和代码)支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符. 最近在开发一个答题类的小程 ...
- python产生5个随机数_Python和numpy生成随机数
http://blog.csdn.net/pipisorry/article/details/39086463 随机数种子 要每次产生随机数相同就要设置种子,相同种子数的Random对象,相同次数生成 ...
- python判断回文数_python如何判断是不是回文数
什么是回文数: 有这样一类数,他们顺着看和倒着看是相同的数,例如:12321,1221,2332等,这样的数字就称为:回文数. 例子:输入一个5位数,判断它是不是回文数.即12321是回文数,个位与万 ...
最新文章
- Java黑皮书课后题第2章:2.11(人口统计)重写编程练习题1.11,提示用户输入年数,然后显示这个年数之后的人口值,将1.11中的提示用于这个程序
- Moblieye副总裁交流纪要
- BZOJ 1305 [CQOI2009]dance跳舞
- SQL Server如何链接到 Oracle并查询其中的数据?并实现做接口
- java数组 规定数量_java – 如何在数组中保持不同事物的数量?
- VB.NET/C# Free Grid Control 免费开源表格控件 - ReoGrid 介绍(1)
- excel2007加载宏的两种方法
- 可视化机器学习工具软件的比较分析研究
- java比特率转换,amr转换mp3所需的编码器、比特率、节录率、声音频道分别是什么?...
- viper4Android md风格,ViPER4Android音效 XHIFX版
- 检测站营销系列文章:机动车检测站如何做精益营销?
- 数据库一对一、一对多、多对多,表设计
- 生活大爆炸版石头剪刀布-简单模拟
- 电脑变时钟,防止消息游戏新闻的打扰,形成高效率的办公和学习
- 【误差】方差、标准差、均方误差和均方根误差的区别总结
- signal,blinker:信号(看我脸色行事)
- JavPlayer 109 1.09 AI破坏马赛克
- Excel打开csv文件时中文内容显示为乱码或问号的解决办法
- m基于MATLAB-GUI的GPS数据经纬度高度解析与kalman分析软件设计
- 51单片机定时器扫描按键