不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据
之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条件导出的功能了.
先上图:
再说明:核心是使用django视图中的命名组,例如配置url(r'^perm=(?P<a>\w+)$', 'keywork.views.work)
那么,我可以访问网址/perm=参数值,这类的参数值就是我们的条件了,最后在java script中编写一个click函数弹出对应的链接即可
后代码:
模板中HTML代码:
<div class="tab-pane" id="data_export"><!-- 标签页--4--数据导出 -->
<h4>导出条件选项</h4>
<form class="form-inline">
<label>年月</label>
<select class='input-small' placeholder='.input-small' id='ny'>
<option value="all" selected="selected">全选</option>
{%for a in monthid%}
<option value="{{a.day_id}}">{{a.day_id}}</option>
{%endfor%}
</select>
<label>支局</label>
<select class='input-small' placeholder='.input-small' id='zj'>
<option value="all" selected="selected">全选</option>
{% for b in mkt_chnl %}
<option value="{{b.mkt_chnl_id}}">{{b.mkt_chnl_name}}</option>
{%endfor%}
</select>
<label>产品名称</label>
<select class='input-small' placeholder='.input-small' id='cpmc'>
<option value="all" selected="selected">全选</option>
{% for c in prod_id %}
<option value="{{c.product_id}}">
{% if c.product_id == "101010001" %}
座机
{% elif c.product_id == "102030001" %}
宽带
{% elif c.product_id == "208511296" %}
手机
{% elif c.product_id == "208511177" %}
电视
{% elif c.product_id == "150000065" %}
itv副机
{% endif %}
</option>
{%endfor%}
</select>
<label>用户类型</label>
<select class='input-small' placeholder='.input-small' id='yhlx'>
<option value="all" selected="selected">全选</option>
{% for u in usertype %}
<option value="{{u.user_flag}}">
{% if u.user_flag == "1" %}
新增用户
{% elif u.user_flag == "2" %}
拆机用户
{% elif u.user_flag == "4" %}
礼包用户
{% elif u.user_flag == "5" %}
3G转4G
{% elif u.user_flag == "6" %}
流量包
{% endif %}
</option>
{%endfor%}
</select>
<input type="button" id="sclj" value="生成链接" class="btn btn-primary btn-sm"/>
</form>
<dl>
<dt>导出数据模块操作说明:</dt>
<dd>请先选择导出条件,然后点击生成链接,最后在下方点击链接下载对应的用户清单数据</dd>
</dl>
<dl>
<dt>链接生成处:</dt>
<dd><a href="#" id="work_backup">空白链接</a>
</dd>
</dl>
</div>
模板中JQUERY代码:
$('#sclj').click(function(){//数据导出链接
tj1 = $("#ny").val();tj2 = $("#zj").val();tj3 = $("#cpmc").val();tj4 = $("#yhlx").val();
$('#work_backup').attr('href','backup-'+tj1+'-'+tj2+'-'+tj3+'-'+tj4);
$('#work_backup').text('backup-'+tj1+'-'+tj2+'-'+tj3+'-'+tj4);
});
view中代码:
def work_backup(request,a,b,c,d):
response = HttpResponse(content_type