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实现图片变亮或者变暗的方法
Jun 01 Python
Python 递归函数详解及实例
Dec 27 Python
Python进阶_关于命名空间与作用域(详解)
May 29 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
Python设计模式之代理模式实例详解
Jan 19 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
python实现飞机大战小游戏
Nov 08 Python
在Python中使用MongoEngine操作数据库教程实例
Dec 03 Python
python将logging模块封装成单独模块并实现动态切换Level方式
May 12 Python
python让函数不返回结果的方法
Jun 22 Python
python使用numpy中的size()函数实例用法详解
Jan 29 Python
使用pycharm运行flask应用程序的详细教程
Jun 07 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
其他功能
2006/10/09 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
PHP 截取字符串专题集合
2010/08/19 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
用python与文件进行交互的方法
2018/03/01 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
西班牙购买隐形眼镜、眼镜和太阳镜网站:Lentiamo.es
2020/06/11 全球购物
酒店个人培训自我鉴定
2013/12/11 职场文书
个人工作表现评语
2014/04/30 职场文书
委托书范本
2014/09/13 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
学生退学证明
2015/06/23 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
修改并编译golang源码的操作步骤
2021/07/25 Golang
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server