1,SMTP发送带excel附件的邮件:

def sendMail(filename, addressee):
"""
:param content: 发送内容
:param sendStr: 收件人
:return: sendmail
"""
msg = MIMEMultipart('related')
msg["Subject"] = "表格导出"
# msg["From"] = "***@qq.com"
msg["To"] = addressee
thebody = MIMEText(u'正文', 'plain', 'utf-8')
msg.attach(thebody)
att = MIMEText(open(u'%s.xls' % filename, 'rb').read(), 'base64', 'GB2312')#附件
att['Content-Type'] = 'application/vnd.ms-excel'
att['Content-Disposition'] = 'attachment; filename ="%s.xls"' % filename #xlsx格式
# att = MIMEText(open(u'%s.xlsx' % filename, 'rb').read(), 'base64', 'utf-8')
# att['Content-Type'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
# att['Content-Disposition'] = 'attachment; filename ="%s.xlsx"' % filename
msg.attach(att) server = smtplib.SMTP_SSL("smtp.qq.com", 465)
server.login("***@qq.com", "***")#第二个参数为邮件配置密钥
server.sendmail("***@qq.com", addressee, msg.as_string())
server.quit()

2,生成excel发送邮件并下载到本地客户端:

#views.py
def export_to_excel(request):
data = [{'a': '','b':''},{'a':'','b':''}]
filename = 'export'
addressee = '***@***.com'
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('sheet1', cell_overwrite_ok=True)
for i in range(0, len(data[0])):
sheet.write(0, i, data[0].keys()[i])
for row in range(1, len(data) + 1):
for col in range(0, len(data[0].items())):
sheet.write(row, col, u'%s' % data[row - 1].values()[col])
print data[0].keys()
workbook.save(r"%s.xls" % filename)
sendMail(filename, addressee)
sio = StringIO.StringIO() # StringIO用来作为字符串的缓存,有些接口和文件操作一致,代码可以同时当成文件操作或者StringIO操作。
workbook.save(sio)
sio.seek(0)
response = HttpResponse(sio.getvalue(),content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename=%s.xls' % filename #xlsx文件,出现拓展名的地方都要改为xlsx
#response = HttpResponse(sio.getvalue(), content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
#response['Content-Disposition'] = 'attachment; filename=%s.xlsx' % filename response.write(sio.getvalue())
exist_file = os.path.exists(r"%s.xls" % filename)
if exist_file: #生成的文件会在项目文件里存留,所以在下载或者发送之后要删除
os.remove(r"%s.xls" % filename)
return response

python导出数据到excel的更多相关文章

  1. python 导出数据到excel 中,一个好用的导出数据到excel模块,XlsxWriter

    最近公司有项目需要导出数据到excel,首先想到了,tablib,xlwt,xlrd,xlwings,win32com[还可以操作word],openpyxl,等模块但是 实际操作中tablib 写入 ...

  2. Python导出数据到Excel表格-NotImplementedError: formatting_info=True not yet implemented

    在使用Python写入数据到Excel表格中时出现报错信息记录:“NotImplementedError: formatting_info=True not yet implemented” 报错分析 ...

  3. Python导出数据生成excel报表

    #_*_coding:utf-8_*_ import MySQLdb import xlwt from datetime import datetime def get_data(sql): # 创建 ...

  4. 使用python脚本从数据库导出数据到excel

    python从数据库导出数据到excel 最近需要从数据库里导出一些数据到excel,刚开始我是使用下面的命令 select * from xxx where xxx into outfile 'xx ...

  5. 1.ASP.NET MVC使用EPPlus,导出数据到Excel中

    好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...

  6. 导出数据到Excel --使用ExcelReport有感

    先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...

  7. 使用Open xml 操作Excel系列之二--从data table导出数据到Excel

    由于Excel中提供了透视表PivotTable,许多项目都使用它来作为数据分析报表. 在有些情况下,我们需要在Excel中设计好模板,包括数据源表,透视表等, 当数据导入到数据源表时,自动更新透视表 ...

  8. Dynamics CRM导出数据到Excel

    原创地址:http://www.cnblogs.com/jfzhu/p/4276212.html 转载请注明出处 Pivot Table是微软BI的一个重要工具,所以这里讲一下Dynamics CRM ...

  9. MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

    导出EXCEL方法总结 MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可: 优点:可设置丰富的EXC ...

随机推荐

  1. 《Linux内核分析》第一周学习报告

    第一周:计算机是如何工作的 姓名:王玮怡  学号:20135116 第一节 存储程序计算机工作模型(冯诺依曼体系结构) IP指向的内存地址,取指令执行,完成后,IP值自加一,取下一条指令再执行. AP ...

  2. linq to sql中的自动缓存(对象跟踪)

    linq to sql中,对于同一个DataContext上下文环境,根据表主键选择记录时(当然这里所指的“记录”会自动转成“对象”),如果该记录已经被select过,默认情况下会被自动缓存下来,下次 ...

  3. 牛B的VUE讲解

    https://www.cnblogs.com/lvhw/p/8286544.html

  4. ESLint的使用

    ESLint是在ECMAScript/JavaScript代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误.在许多方面,它和JSLint.JSHint相似,除了少数的例外: ESL ...

  5. luogu1312

    有趣的题面 超有趣的dfs大模拟,码了巨久,卡时过了此题qaq #include <cstdio> #include <cstring> #include <algori ...

  6. Luogu4980 【模板】Polya定理(Polya定理+欧拉函数)

    对于置换0→i,1→i+1……,其中包含0的循环的元素个数显然是n/gcd(i,n),由对称性,循环节个数即为gcd(i,n). 那么要求的即为Σngcd(i,n)/n(i=0~n-1,也即1~n). ...

  7. Fantastic Graph 2018 沈阳赛区网络预赛 F题

    题意: 二分图 有k条边,我们去选择其中的几条 每选中一条那么此条边的u 和 v的度数就+1,最后使得所有点的度数都在[l, r]这个区间内 , 这就相当于 边流入1,流出1,最后使流量平衡 解析: ...

  8. 【BZOJ1077】天平(差分约束)

    [BZOJ1077]天平(差分约束) 题面 BZOJ 洛谷 题解 利用矩阵可以很容易得到两个点之间的最大差和最小差,再利用这个信息判断即可.差分约束用\(Floyd\)计算.时间复杂度\(O(n^3) ...

  9. HGOI20180815 (NOIP 提高组模拟赛 day2)

    Day 2 rank 11 100+35+30=165 本题是一道数论题,求ax+by=c的正整数对(x,y) x>=0并且y>=0 先说下gcd: 求a,b公约数gcd(a,b) 如gc ...

  10. 洛谷 P2862 [USACO06JAN]把牛Corral the Cows 解题报告

    P2862 [USACO06JAN]把牛Corral the Cows 题目描述 Farmer John wishes to build a corral for his cows. Being fi ...