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类和函数中使用静态变量的方法
May 09 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
python pandas时序处理相关功能详解
Jul 03 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
Python threading.local代码实例及原理解析
Mar 16 Python
python 装饰器重要在哪
Feb 14 Python
python中的sys模块和os模块
Mar 20 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.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
node使用request请求的方法
2019/12/20 Javascript
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
pandas实现将dataframe满足某一条件的值选出
2019/06/12 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
个人承诺书
2014/03/26 职场文书
学生评语大全
2014/04/18 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
护士个人年终总结
2015/02/13 职场文书
工作简历自我评价
2015/03/11 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技