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 相关文章推荐
利用TensorFlow训练简单的二分类神经网络模型的方法
Mar 05 Python
python的中异常处理机制
Aug 30 Python
python如何求解两数的最大公约数
Sep 27 Python
3个用于数据科学的顶级Python库
Sep 29 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
python单线程文件传输的实例(C/S)
Feb 13 Python
PyQtGraph在pyqt中的应用及安装过程
Aug 04 Python
用python3读取python2的pickle数据方式
Dec 25 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 Python
浅析python连接数据库的重要事项
Feb 22 Python
matplotlib之pyplot模块实现添加子图subplot的使用
Apr 25 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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
初识PHP
2014/09/28 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
Python数组遍历的简单实现方法小结
2016/04/27 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
Android面试题附答案
2014/12/08 面试题
室内设计自我鉴定
2013/10/15 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
新学期开学寄语
2014/01/18 职场文书
大学生社会实践评语
2014/04/25 职场文书
学雷锋宣传标语
2014/06/25 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
详解Golang如何优雅的终止一个服务
2022/03/21 Golang