python实现的生成word文档功能示例


Posted in Python onAugust 23, 2019

本文实例讲述了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实现的生成word文档功能示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现爬取千万淘宝商品的方法
Jun 30 Python
python3.x上post发送json数据
Mar 04 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
人工神经网络算法知识点总结
Jun 11 Python
Python Pandas数据结构简单介绍
Jul 03 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
python游戏开发的五个案例分享
Mar 09 Python
Python 中如何使用 virtualenv 管理虚拟环境
Jan 21 Python
利用Python函数实现一个万历表完整示例
Jan 23 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 #Python
详解Matplotlib绘图之属性设置
Aug 23 #Python
python3.6生成器yield用法实例分析
Aug 23 #Python
python基础 range的用法解析
Aug 23 #Python
Django 导出项目依赖库到 requirements.txt过程解析
Aug 23 #Python
Django接收自定义http header过程详解
Aug 23 #Python
Python 处理文件的几种方式
Aug 23 #Python
You might like
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
JsChart组件使用详解
2018/03/04 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
python3.5的包存放的具体路径
2020/08/16 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
python re的findall和finditer的区别详解
2020/11/15 Python
Python读写Excel表格的方法
2021/03/02 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
写好自荐信的要点
2013/11/06 职场文书
区域总监的岗位职责
2013/11/21 职场文书
家长会欢迎标语
2014/06/24 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
入党培养人考察意见
2015/06/08 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫