需求

读取excel里的表格里的内容,然后打开本机的outlook。把excel里的内容添加到正文里,注意。这里是要添加到正文!正文!正文!而不是添加到附件里

设计思路

1.excel处理

打开excel的方法有很多,但是在不知道excel里,行和列的大小的情况下,就能获得excel里的非空值行列的办法不多。我这边采用的是xlwings这个库,用的方法是range.current_region这个方法。这个方法会选择当前range下,有值的区域(非空区域)

通过配置options选项,可以指定excel获得的值的格式,int或者string,或者空值返回N/A

2.打开outlook

打开outlook在windows上只能用win32模块了,通过下面方法可以打开outlook并且创建一个空的email

olook = win32com.client.Dispatch("Outlook.Application")
mail = olook.CreateItem(0)

然后配置邮件的htmlbody和outlook邮件悬停(可以手动更改邮件内容,手动发送),可以用以下方法

mail.HTMLBody = body_html
mail.Display(True)

完整代码

下面是完整代码,读者修改一下excel的路径,就可以自己去试试啦

# -*- coding: UTF-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import win32com.client
import xlwingsdef get_excel_date(filename):'''
    获得excel里的所有内容,返回list:param filename:  excel路径:return: list[list[]]'''
    app = xlwings.App(visible=False, add_book=True)app.display_alerts = Falseapp.screen_updating = Falsewb = app.books.open(filename)sht = wb.sheets[0]rng = sht.range('A1')# 把excel里的数据读取成 年-月-日 时:分:秒的格式my_date_handler = lambda year, month, day, hour, minute, second, **kwargs: "%04i-%02i-%02i %02i:%02i:%02i" % (year, month, day, hour, minute, second)# 取出所有内容,这里用ig这个变量,是为了庆祝I.G获得LOL S8赛季总冠军ig = rng.current_region.options(index=False, numbers=int, empty='N/A', dates=my_date_handler)result = ig.valuewb.close()app.quit()return resultif __name__ == '__main__':olook = win32com.client.Dispatch("Outlook.Application")mail = olook.CreateItem(0)mail.Recipients.Add("3xxx@qq.com")mail.Subject = "test report"body_html = ""body_html = body_html + '<body>Hi all:<br/>以下是XXXXX项目今天的测试情况:<br/><br/>明天的测试计划:<br/><br/>目前的bug:'body_html = body_html + '<table width="1" border="1" cellspacing="1" cellpadding="1" height="100">'# 这里用rng 是因为这一次rng止步8强!rng_list = get_excel_date("D:\\reports\\Table.xlsx")# 表头for tr_list in rng_list[:1]:body_html = body_html + "<tr>"for td_list in tr_list:# 这里也是奇葩需求,因为要求表头不能换行,所以用了nowrapbody_html = body_html + '<th bgcolor="#C3C3C3" nowrap="nowrap">' + td_list + '</th>'body_html = body_html + "</tr>"# 表内容for tr_list in rng_list[1:]:body_html = body_html + "<tr>"for td_list in tr_list:body_html = body_html + "<td>" + td_list + "</td>"body_html = body_html + "</tr>"body_html = body_html + '</table>'body_html = body_html + "</body>"mail.HTMLBody = body_htmlmail.Display(True)

参考:https://www.yinyubo.cn/?p=339

转载于:https://www.cnblogs.com/jackzz/p/10937544.html

PYTHON读取EXCEL内容再转变成HTML添加到OUTLOOK中相关推荐

  1. python excel 内容写入html,PYTHON读取EXCEL内容再转变成HTML添加到OUTLOOK中

    需求 读取excel里的表格里的内容,然后打开本机的outlook.把excel里的内容添加到正文里,注意.这里是要添加到正文!正文!正文!而不是添加到附件里 设计思路 1.excel处理 打开exc ...

  2. python读取excel内容和写入_Python读取和写入Excel文件

    制作Excel表 常用方法说明 Workbook类 Workbook类创建一个XlswWrite的Workbook对象,相当于创建一个excel表 And_worksheet()用来创建工作表,默认为 ...

  3. python读取excel内容把空格去掉_Python3 去除 Excel 空白

    [环境] Windows 10 下,Python 3.6,使用第三方包 openpyxl. [config.ini][config] ; Excel 文件名 XlFile=D:\test\test.x ...

  4. python读取excel内容把空格去掉_python读取EXCEL是去掉空白行和表头全部重命名

    当读取进来的表格如图所示,转换成图2. import pandas as pd # header:指定作为列名的行,默认0,即取第一行的值为列名.数据为列名行以下的数据:若数据不含列名, # 则设定 ...

  5. python 查找excel内容所在的单元格_python 读取excel中单元格的内容

    python 读取excel中单元格的内容 excel文件内容: 读取excel代码: # coding=utf-8 import xlrd import sys reload(sys) sys.se ...

  6. python 读取excel中单元格的内容

    python 读取excel中单元格的内容 excel文件内容: 读取excel代码: # coding=utf-8 import xlrd import sysreload(sys) sys.set ...

  7. python读取excel日期内容读出来是数字-Python读取Excel,日期列读出来是数字的处理...

    Python读取Excel,里面如果是日期,直接读出来是float类型,无法直接使用. 通过判断读取表格的数据类型ctype,进一步处理. 返回的单元格内容的类型有5种: ctype: 0 empty ...

  8. python读取excel某一列内容-Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  9. python读取excel表格-Python读取Excel单元格的内容

    python读取excel的单元格返回类型 Python通过xlrd对Excel进行读取操作时,返回的数据类型(ctype)有下面5中类型: 0 – empty:空 1 – string:字符串 2 ...

  10. Python读取Excel单元格的内容

    xlrd读取Excel文件 python读取excel的单元格返回类型 Python通过xlrd对Excel进行读取操作时,返回的数据类型(ctype)有下面5中类型: 0 – empty:空 1 – ...

最新文章

  1. UI设计掌握这些技巧,小白也能华丽变身
  2. 数据分析:构建可视化报表服务
  3. Python 面向对象 编程(一)
  4. 时间序列预测方法汇总:从理论到实践(附Kaggle经典比赛方案)
  5. 在VS中创建多个项目
  6. android 弹出弹框2秒消失_基于HTML5 Canvas 实现弹出框
  7. 【PL/SQL】测试函数时,日期参数的输入格式
  8. Win11管理员已阻止你运行此应用,有关详细信息怎么处理?
  9. 码农们:你属于哪一种极品程序员?
  10. git上传本地文件方法
  11. SuperMap iDesktopX 数据迁移
  12. 利用OA系统进行档案管理原来这么简单?
  13. Python实现ABC人工蜂群优化算法优化支持向量机回归模型(SVR算法)项目实战
  14. 有才而性缓,有智而气和
  15. egret内存泄漏整理学习
  16. 20210130上午新初一(GW+JZ)比赛总结
  17. iOS发布app到App Store教程
  18. 互联网及其应用——第一章 互联网概述
  19. 【预测模型】基于布谷鸟算法优化BP神经网络实现数据预测matlab代码
  20. 比notepad++好用的文本编辑器

热门文章

  1. Python自学之路——装饰器的秘密
  2. 如何优雅的使用iBatis
  3. 分享我的iOS app 开发杂谈3
  4. iphone开发常用编码
  5. WMI 脚本入门:第二部分 (MSDN)
  6. 当代研究生应当掌握的并行训练方法(单机多卡)
  7. [ACL17]A Minimal Span-Based Neural Constituency Parser(一个最小化的基于跨度的神经句法分析器)...
  8. 金融评分卡项目—2.银行客户流失预警模型介绍(单因子与多因子分析)
  9. pandas-pandas.Categorical
  10. 吴恩达深度学习——浅层神经网络