本文实例讲述了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 自动生成word文档_python实现的生成word文档功能示例相关推荐

  1. python爬取小说项目概述_Python实现的爬取小说爬虫功能示例

    Python实现的爬取小说爬虫功能示例 发布时间:2020-10-09 03:39:58 来源:脚本之家 阅读:64 作者:阳光Cherry梦 本文实例讲述了Python实现的爬取小说爬虫功能.分享给 ...

  2. python socket模块实现udp通信_Python基于socket模块实现UDP通信功能示例

    Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端 import sock ...

  3. 用python编写最简单的记事本_Python使用字典实现的简单记事本功能示例

    本文实例讲述了Python使用字典实现的简单记事本功能.分享给大家供大家参考,具体如下: from time import sleep, strftime user = "Cytus&quo ...

  4. python自动生成word版本试卷_Python解决问题:生成包含加减练习题的Word文件

    简   介 这里     小朋友假期作业有一项是每天做50道题的口算.之前的题目做完了,网上看到的习题集又木有合适的,再不然就是电子版本无法下载的,心想还是自己动手丰衣足食吧. 01 重点和难点 1F ...

  5. python 引入同一路径的类_Python实现Wordcloud生成词云图的示例

    wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概. 首先贴出一张词云图(以哈利波特小说为例): 在生成词云图之前 ...

  6. python判断回文数_python如何判断是不是回文数

    什么是回文数: 有这样一类数,他们顺着看和倒着看是相同的数,例如:12321,1221,2332等,这样的数字就称为:回文数. 例子:输入一个5位数,判断它是不是回文数.即12321是回文数,个位与万 ...

  7. python输入一个五位数、判断是否为回文数_python如何判断是不是回文数

    什么是回文数: 有这样一类数,他们顺着看和倒着看是相同的数,例如:12321,1221,2332等,这样的数字就称为:回文数. 例子:输入一个5位数,判断它是不是回文数.即12321是回文数,个位与万 ...

  8. python自动测试网络通断_Python测试网络连通性示例【基于ping】

    本文实例讲述了Python测试网络连通性.分享给大家供大家参考,具体如下: Python代码 #!/usr/bin/python # -*- coding:GBK -*- ""&q ...

  9. python统计文章单词次数_Python实现的统计文章单词次数功能示例

    本文实例讲述了Python实现的统计文章单词次数功能.分享给大家供大家参考,具体如下: 题目是这样的:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认 ...

  10. 学python电脑硬件_Python实现的读取电脑硬件信息功能示例

    本文实例讲述了Python实现的读取电脑硬件信息功能.分享给大家供大家参考,具体如下: 上学那会,老师让我用java获取电脑硬件信息,CPU, 硬盘,MAC等,那个时候感觉搞了好久...... 今天, ...

最新文章

  1. mysql innodb_data_file_path_关于innodb_data_file_path设置
  2. python爬虫新闻_python爬虫,爬取一系列新闻
  3. netstat详解_需要!Linux常用监视和故障排查命令详解
  4. precede和previous_Previous Analyses of Hungarian Phrase Structure
  5. chrome 使用gpu 加速_一招解决 Chrome / Edge 卡顿缓慢 让浏览器重回流畅顺滑
  6. python处理ini文件_python对ini配置文件处理
  7. 1到100的偶数之和是多少_新射雕群侠传之铁血丹心手游新侠客独孤求败全渠道上线 新玩法桃花岛开启...
  8. IO流练习题 实现图片的加密解密操作
  9. 负margin在布局中的运用(*****************************************************************)...
  10. BizTalkServer 如何发送 EDI 消息(3)
  11. SpringBoot整合kafka(安装)
  12. 都说“先卖人,后卖货”,或者说要想卖货,先卖人
  13. Maven 国内镜像
  14. Java加权负载均衡策略
  15. python实现动态壁纸_Python 实现macOS Catalina 动态壁纸定时设置
  16. 熊猫tv新功能介绍_大熊猫内置可视化功能
  17. 【贪玩巴斯】每日一练——《力扣:LeetCode 算法入门》(C++)——「存在重复元素」
  18. 微信上卖菜的小程序怎么做?
  19. Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane),TextArea右键菜单 组件使用案例
  20. 深入浅出监控神器Prometheus

热门文章

  1. Spring Security摘抄
  2. 图形化 MQTT 测试工具 eclipse paho 客户端下载
  3. 内网渗透(windows)
  4. 三层架构:表示层-业务逻辑层-数据访问层2
  5. 数字化“下沉”,持续赋能中小企业
  6. mysql的各种语句_MySQL 常用语句大全
  7. html5 图片hover,关于html5:两种纯CSS方式实现hover图片popout弹出效果
  8. 百度SEO最新泛目录程序+推送工具
  9. 名企增加员工“心理收入”秘诀
  10. 递归算法实现指数型枚举、组合、排列