python实现的生成word文档功能示例

发布时间:2020-09-23 11:37:44

来源:脚本之家

阅读:108

作者:zhizunyu2009

本文实例讲述了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,)

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相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

python 自动生成word文档,python实现的生成word文档功能示例相关推荐

  1. 如何用python自动改试卷_利用Python和Jinja2自动生成试卷

    一.概述 Jinja2是Python 3下一个被广泛应用的模版引擎,它的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能.其中最显著的一个是增加了沙箱执行功能和可选的自动转义功能 ...

  2. python自动汇总表格_用Python自动生成Excel报表

    作者 / 来源:林骥(ID:linjiwx) 01 安装和导入模块 以 Python 中的 openpyxl 模块为例,它能够读取和修改 Excel 文件,如果你还没有安装,可以通过以下命令进行安装: ...

  3. python 自动执行 apdl_【转载】利用VB生成APDL文件 和Python文件的方法

    图1 ANSYS的批处理操作 baqus的内置语言是Python,与ANSYS类似,每一步操作都会有对应的Python命令,一个完整的Python编写的脚本文件可以在Abaqus里面运行,而执行完整的 ...

  4. 用python自动办公 百度_用Python自动办公,做职场高手,16章完整版百度云盘

    01.文件 [12.20更新课程代码]用Python自动办公做职场高手.rar [课程代码]从零写Python练手项目:实用脚本.zip [课程代码]四周实现爬虫网站.zip [课程代码]用NumPy ...

  5. python 自动发微博_用 Python 自动定时发微博

    原标题:用 Python 自动定时发微博 其实小帅b已经挺久没有玩微博了,记得上次玩微博还是为了给周杰伦打榜,不过最近心血来潮,觉得俺的微博账号躺着也是躺着,要不就用 Python 做一个自动定时发微 ...

  6. python自动获取天气_用python获取天气数据,并作定时播报

    原标题:用python获取天气数据,并作定时播报 数据挖掘入门与实战 公众号: datadw 思路 1.调用和风天气的API,获取天气数据 2.用百度语音API,将天气数据合成语音 3.用树莓派每天早 ...

  7. python自动补全_Windows 下python的tab自动补全

    Windows 下python的tab自动补全# 对于新学python的朋友来说,python模块的功能多而难记,mac和Linux中有tab自动补全命令功能,使用Windows的同学们怎么办?下面我 ...

  8. python自动投递简历_用python在前程无忧高效投递简历

    在前程无忧上投递简历发现有竞争力分析,免费能看到匹配度评价和综合竞争力分数,能够作投递参考 计算方式php 综合竞争力得分应该越高越好,匹配度评语也应该评价越高越好html 抓取全部职位关键字搜索结果 ...

  9. python自动发邮件 foxmail_使用 python 脚本实现自动监控网站并发送邮件告警

    今天中午的时候,网站莫名奇妙地出现无法访问的现象,持续了两个多小时,等发现问题的时候立刻重启了服务器才恢复正常.为防止同样的事情再次发生,所以就想编写一个自动化脚本来监控网站服务,今天为大家分享一下使 ...

  10. python自动控制程序_巧用 python 脚本控制你的C程序

    python是一门艺术语言,除了开发桌面程序,还能够开发网络应用,数据库应用,还可以代替shell编写一些的实用脚本,本文主要讲述了如何利用 python 程序控制你的 C 程序的行为. 作为例子,本 ...

最新文章

  1. Foxmail邮件如何导入Outlook中
  2. 99.99%准确率!AI数据训练工具No.1来自中国
  3. Android启动过程深入解析
  4. 软工三(5.12上课)
  5. cad残留卸载清理工具,强力清理CAD注册表残留
  6. ubuntu14安装火狐浏览器(firefox)中国版
  7. 【FinE】EMD/EEMD方法及金融数据分解
  8. VSCODE mac版下载慢解决办法
  9. 从根本上降低采购成本,不割韭菜~
  10. python通过scapy模块进行arp断网攻击
  11. 发光环绕文字特效怎么做?教程来了
  12. C++循环---数字统计(自学用)
  13. 微信小程序开发架构——JavaScript的基本概述 和 JavaScript在 Nodejs、小程序中、浏览器中的使用方法
  14. 滑动轨迹 曲线 python_python——自动轨迹绘制
  15. CSRF攻击原理及防护
  16. 视频剪辑需要专门报班去学吗?
  17. Python中//符号是什么意思?
  18. 火车站售票系统课程设计
  19. hackthebox(HTB) precious 靶机!
  20. RESTFUL风格规范

热门文章

  1. 软件测试(Ron Patton著)学习笔记
  2. 2022-2028中国静脉穿刺针市场现状研究分析与发展前景预测报告
  3. AVTECH摄像监控存漏洞 可被控组建僵尸网络发起DDoS攻击
  4. 初中学历能直接自考大专吗 自考有学历要求吗
  5. AIDE能进行C语言编译吗,java手机编译器AIDE
  6. 计算机信息素养的三个层次是,信息素养的三个层面包括( A ).doc
  7. Agora 教程丨一个典型案例,教你如何使用水晶球“数据洞察”
  8. Common Files文件夹介绍
  9. 商业智能BI在信息化建设中到底处于一个什么位置?
  10. 五分钟学后端技术:如何学习分布式系统和相关技术