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中类的定义、继承及使用对象实例详解
Apr 30 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
利用Python实现手机短信监控通知的方法
Jul 22 Python
python用win32gui遍历窗口并设置窗口位置的方法
Jul 26 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
Nov 15 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
如何将json数据转换为python数据
Sep 04 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
Sep 29 Python
Python自动化爬取天眼查数据的实现
Jun 15 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
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
几个javascript操作word的参考代码
2009/10/26 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
在Django中创建动态视图的教程
2015/07/15 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
Python中进程和线程的区别详解
2017/10/29 Python
python http接口自动化脚本详解
2018/01/02 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
Python中按键来获取指定的值
2019/03/02 Python
由面试题加深对Django的认识理解
2019/07/19 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
爷爷追悼会答谢词
2014/01/24 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
Mysql基础之常见函数
2021/04/22 MySQL