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 相关文章推荐
win7安装python生成随机数代码分享
Dec 27 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
Mar 14 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
python多线程http压力测试脚本
Jun 25 Python
python Pillow图像处理方法汇总
Oct 16 Python
Python3 io文本及原始流I/O工具用法详解
Mar 23 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
python3.7添加dlib模块的方法
Jul 01 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
python 图像增强算法实现详解
Jan 24 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
Jun 11 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
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
深入extjs与php参数交互的详解
2013/06/25 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
php构造方法中析构方法在继承中的表现
2016/04/12 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
json的使用小结
2016/06/08 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
tensorflow识别自己手写数字
2018/03/14 Python
Python当中的array数组对象实例详解
2019/06/12 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
python如何求圆的面积
2020/07/01 Python
python中实现栈的三种方法
2020/12/19 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
招商专员岗位职责
2014/02/08 职场文书
护理专科自荐书范文
2014/02/18 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
老龙头导游词
2015/02/11 职场文书
员工离职通知函
2015/04/25 职场文书