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实现从订阅源下载图片的方法
Mar 11 Python
详解Python的Django框架中的通用视图
May 04 Python
Python之自动获取公网IP的实例讲解
Oct 01 Python
python实现手机通讯录搜索功能
Feb 22 Python
Python入门学习指南分享
Apr 11 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
Python中单线程、多线程和多进程的效率对比实验实例
May 14 Python
Django框架封装外部函数示例
May 28 Python
PyCharm安装Markdown插件的两种方法
Jun 24 Python
Python实现点云投影到平面显示
Jan 18 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
PyTorch预训练Bert模型的示例
Nov 17 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中使用模板的方法
2008/05/24 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
php 一元分词算法
2009/11/30 PHP
php 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
Python中的pprint折腾记
2015/01/21 Python
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
Python基于多线程操作数据库相关问题分析
2018/07/11 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
python opencv肤色检测的实现示例
2020/12/21 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
《宿建德江》教学反思
2014/04/23 职场文书
留学推荐信范文
2014/05/10 职场文书
监护人证明
2015/06/19 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
Golang 编译成DLL文件的操作
2021/05/06 Golang
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python