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
用Python编程实现语音控制电脑
Apr 01 Python
Python返回真假值(True or False)小技巧
Apr 10 Python
Python可变参数函数用法实例
Jul 07 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
Django项目实战之用户头像上传与访问的示例
Apr 21 Python
Python实现对文件进行单词划分并去重排序操作示例
Jul 10 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
将Python文件打包成.EXE可执行文件的方法
Aug 11 Python
pytorch masked_fill报错的解决
Feb 18 Python
Python %r和%s区别代码实例解析
Apr 03 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
2014/01/15 PHP
js下用eval生成JSON对象
2010/09/17 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
关于element的表单组件整理笔记
2021/02/05 Javascript
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
邮政员工辞职信
2014/01/16 职场文书
物业管理工作方案
2014/05/10 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
2014年加油站工作总结
2014/12/04 职场文书
武侯祠导游词
2015/02/04 职场文书
公司表扬信格式
2015/05/04 职场文书
心灵捕手观后感
2015/06/02 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python