urls:

from django.conf.urls import url, include
from . import views urlpatterns = [
...
url(r'^domains/_export_dns.html', views.export_dns, name='export_dns'),
...
]

view:

import xlrd, xlwt

def set_style(name, height, bold=False):
"""
excel样式
:param name: 字体名
:param height: 调度
:param bold: 边框
:return:
"""
style = xlwt.XFStyle() # 初始化样式
font = xlwt.Font() # 为样式创建字体
font.name = name # 'Times New Roman'
font.bold = bold
font.color_index = 000
font.height = height
style.font = font # 设置单元格边框
# borders= xlwt.Borders()
# borders.left= 6
# borders.right= 6
# borders.top= 6
# borders.bottom= 6
# style.borders = borders # 设置单元格背景颜色
# pattern = xlwt.Pattern()
# 设置其模式为实型
# pattern.pattern = pattern.SOLID_PATTERN
# 设置单元格背景颜色
# pattern.pattern_fore_colour = 0x00
# style.pattern = pattern return style @login_required
def export_dns(req):
"""
导出DNS解析记录
:param req:
:return:
""" if req.method == 'GET':
data = req.GET.get('data')
data = json.loads(data) zone_tag_obj = models.ZoneTag.objects.get(zone_name=data['zone'])
record_obj_list = zone_tag_obj.ZoneTag_Record.filter( ~Q(type='SOA') ) response = HttpResponse(content_type='application/ms-excel')
response['Content-Disposition'] = 'attachment; filename="%s.xls"' %(data['zone']) book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('Sheet1', cell_overwrite_ok=True)
row0 = ['主机记录', '记录类型', '解析线路', '记录值', 'MX优先级', 'TTL', '状态', '备注']
# 设置列宽
sheet.col(0).width = 6000
sheet.col(1).width = 3000
sheet.col(2).width = 3000
sheet.col(3).width = 6000
sheet.col(4).width = 3000
sheet.col(5).width = 3000
sheet.col(6).width = 3000
sheet.col(7).width = 12000
for i in range(0, len(row0)):
sheet.write_merge(0, 0, i, i, row0[i], set_style('Times New Roman', 220, True)) for k, v in enumerate(record_obj_list, start=1):
sheet.write(k, 0, v.host)
sheet.write(k, 1, v.type )
sheet.write(k, 2, v.resolution_line )
sheet.write(k, 3, v.data )
sheet.write(k, 4, v.mx_priority )
sheet.write(k, 5, v.ttl)
sheet.write(k, 6, v.status)
sheet.write(k, 7, v.comment ) book.save(response) return response
elif req.method == 'POST':
msg = {'status': 200}
return HttpResponse(json.dumps(msg))

js:

function ExportDnsRecordACK(){
// 确认导出DNS解析记录
var _export_dns_record_type = $("select[name=export_dns_record_type]")[0].value.trim();
var _zone = $("#ExportDnsRecordModalLabel h4").attr('domain')
var __data = {'data': _export_dns_record_type, 'zone':_zone} var url = "/domains/_export_dns.html?data=" + JSON.stringify(__data); $.ajax({
url: "/domains/_export_dns.html",
type: "POST", //请求类型
data: {},
//async : false,
dataType: "json",
//beforeSend:function(XMLHttpRequest){
// // 请求前执行
//},
success: function (response, status, request) {
//当向服务端发起的请求执行成功完成后,自动调用
if(request['status'] == 200){
$('#ExportDnsRecordModalLabel').modal('hide');
window.location.href = url; //下载文件
}
},
error: function () {
//当请求错误之后,自动调用
}
});
} $(document).ready(function(){
// 确认 导出DNS解析记录
$(document).on("click", 'button[name=_export_dns_record_ok]', ExportDnsRecordACK);
}

python通过xlwt模块直接在网页上生成excel文件并下载的更多相关文章

  1. Python:将爬取的网页数据写入Excel文件中

    Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...

  2. 使用python在WEB页面上生成EXCEL文件

    来自:http://blog.sina.com.cn/s/blog_5d18f85f0101bxo7.html 近日写的一个程序需要在WEB服务器上生成EXCEL文件供用户下载,研究了一下找到了以下比 ...

  3. python xlwt模块生成excel文件并写入数据 xlrd读取数据

    python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...

  4. Flash文件在asp页面无法播放,网页上面的Flash文件在火狐浏览器不播放

    第一个问题:Flash文件放到asp页面以后无法播放. 解决方法:用浏览器打开页面->F12,选择Network,如下图: 然后刷新页面,如下图: 点击左侧状态是404的文件,如图: 可以发现F ...

  5. Django框架(上传Excel文件并读取)

    博主今天整理下Django框架中上传Excel文件并读取 博主是要在管理平台中新增用例的维护功能,想着通过上传Excel文件来展示用例,下面是项目的路径图: 首先先建数据库模型 model.py 可以 ...

  6. 如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?

    如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?原文链接:http://www.java2class.net/bbs/viewthr ...

  7. 通过javascript在网页端生成zip压缩包并下载

    zip.js是什么 zip.js的github项目地址:http://gildas-lormeau.github.io/zip.js/ 通过zip.js封装一个能在网页端生成zip文件的插件, 直接在 ...

  8. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  9. java上传excel文件及解析

      java上传excel文件及解析 CreateTime--2018年3月5日16:25:14 Author:Marydon 一.准备工作 1.1 文件上传插件:swfupload: 1.2 文件上 ...

随机推荐

  1. 运用HTML5+CSS3和CSS滤镜做的精美的登录界面

    原始出处http://chenjinfei.blog.51cto.com/2965201/774865 <!DOCTYPE HTML> <html> <head> ...

  2. Alpha冲刺3

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/9971198.html 作业博客:https://edu.cnblogs.com/campus/ ...

  3. android 8.0 intent安装apk失败屏幕闪过

    需要做两处设置: 1.android8.0要加一条权限: <uses-permission android:name="android.permission.REQUEST_INSTA ...

  4. 移动端开发rem单位

    1.用js计算 <script> (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientat ...

  5. 使用scrapy ImagesPipeline爬取图片资源

    这是一个使用scrapy的ImagesPipeline爬取下载图片的示例,生成的图片保存在爬虫的full文件夹里. scrapy startproject DoubanImgs cd DoubanIm ...

  6. JAVA按顺序播放多个wav音频

    用Java按顺序播放多个音频部件,不是同时播放.代码如下: List<String> files = new ArrayList<String>(); files.add(&q ...

  7. centos6.5 vncserver

    yum install tigervnc tigervnc-server -y vncserver 又叫tigervnc 2.配置 vncserver vim /etc/sysconfig/vncse ...

  8. HDU1548- A strange lift (BFS入门)

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1548 A Strrange lift Time Limit: 2000/1000 MS (Java/ ...

  9. 【转载】 Pytorch中的学习率调整lr_scheduler,ReduceLROnPlateau

    原文地址: https://blog.csdn.net/happyday_d/article/details/85267561 ------------------------------------ ...

  10. Java当中的JVM

    Java当中JVM 01 在使用控制面板时的实质: Hello.java使用javac,然后变成为Hello.class通过运行java这个命令,在类加载器中(含有加载,验证,准备,解析,初始化,使用 ...