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实现用户登陆邮件通知的方法
Jul 09 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
python发送邮件实例分享
Jul 28 Python
django模板语法学习之include示例详解
Dec 17 Python
PyQT实现多窗口切换
Apr 20 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
使用python实现滑动验证码功能
Aug 05 Python
python实现两个文件夹的同步
Aug 29 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
vue常用指令代码实例总结
Mar 16 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
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
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
实例讲解PHP表单
2020/06/10 PHP
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
javascript的内存管理详解
2013/08/07 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
Cython 三分钟入门教程
2009/09/17 Python
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
Python和JavaScript间代码转换的4个工具
2016/02/22 Python
Python守护线程用法实例
2017/06/23 Python
python2.7到3.x迁移指南
2018/02/01 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
逃课上网检讨书
2014/02/20 职场文书
读书活动实施方案
2014/03/10 职场文书
公司活动总结怎么写
2014/06/25 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
Python机器学习之基础概述
2021/05/19 Python
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
python中urllib包的网络请求教程
2022/04/19 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers