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中使用中文的方法
Feb 19 Python
python获取指定网页上所有超链接的方法
Apr 04 Python
详解duck typing鸭子类型程序设计与Python的实现示例
Jun 03 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
python同时替换多个字符串方法示例
Sep 17 Python
python selenium 执行完毕关闭chromedriver进程示例
Nov 15 Python
python实现七段数码管和倒计时效果
Nov 23 Python
解析PyCharm Python运行权限问题
Jan 08 Python
python定义类self用法实例解析
Jan 22 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 Python
python如何实现递归转非递归
Feb 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 高手之路(一)
2006/10/09 PHP
PHP 采集心得技巧
2009/05/15 PHP
第三章 php操作符与控制结构代码
2011/12/30 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
浅谈php和.net的区别
2014/09/28 PHP
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
Python 查看文件的读写权限方法
2018/01/23 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
python用match()函数爬数据方法详解
2019/07/23 Python
使用python模拟高斯分布例子
2019/12/09 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
python属于跨平台语言码
2020/06/09 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
奇怪的鱼:Weird Fish
2018/03/18 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
幼儿园保育员岗位职责
2014/04/13 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
学校宣传标语
2014/06/18 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
让人感觉高大上的讲话稿怎么写?
2019/07/08 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
Java无向树分析 实现最小高度树
2022/04/09 Javascript