Django-admin导出到表格
2024-09-07 07:35:48
class AdminReport(admin.ModelAdmin):
actions = ["saveexecl"] # 自定义的action(导出到excel表格)
list_display = ("id",'offer','day_time', 'idfa', 'submit_result_text', 'callback_result_text') # 显示的列
search_fields = ('day_time','callback_result_text') # 可以搜索的字段
date_hierarchy = 'day_time' # 按照日期显示
list_filter = ('offer',) # 过滤条件
list_per_page = 500 # 每页显示500条,太多了可能会出现服务器崩掉的情况 def saveexecl(self,request,queryset):
Begin = xlwt.Workbook()
sheet = Begin.add_sheet("response")
cols = 0
for query in queryset:
# you need write colms # 好像有个方法可以一次性写入所有列,记不清了,只能用这种简单的方法去实现
sheet.write(cols,1,str(query.idfa)) # 写入第一列
sheet.write(cols,2,str(query.day_time)) # 写入第二列
sheet.write(cols,3,str(query.keyword)) # 写入第三列
cols += 1
Begin.save("%s" %(filename))
def file_iterator(filename,chuck_size=512):
with open(filename,"rb") as f:
while True:
c = f.read(chuck_size)
if c:
yield c
else:
break
response = StreamingHttpResponse(file_iterator(filename))
response['Content-Type'] = 'application/octet-stream'
response['Content-Disposition'] = 'attachment;filename="{}"'.format("result.xls")
return response
saveexecl.short_description = "导出Excel" # 按钮显示名字 admin.site.register(Report, AdminReport) # 注册到admin
最新文章
- 基于谷歌地图的Dijkstra算法水路路径规划
- namesilo域名注册教程
- Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
- Webdriver - Selenium Grid Configuration
- ElasticSearch.js
- 山东意外险风险信息推送V7非车
- DLL详解及Denpendcy Walker的使用
- JAVA面向对象总结
- asp.net 多站点共享StateServer Session
- Sqoop的安装部署
- HTML5_音视频标签 <;audio>; 和 <;video>;
- object tracking 词汇积累
- js中for(var key in o ){};用法小记
- php curl使用 常用操作
- 【阿里聚安全&#183;安全周刊】Intel芯片级安全漏洞事件|macOS存在漏洞
- PHP 订单延时处理:延迟队列(未鉴定)
- 01:云计算三种服务模式SaaS、PaaS和IaaS
- root密码重置(Centos 7)
- 洛谷P1525 关押罪犯
- Oracle分析函数大全
热门文章
- Welcome-to-Swift-05控制流(Control Flow )
- 【Luogu】P1486郁闷的出纳员(Splay)
- Tomcat和JVM的内存配置
- 如何选择IO流
- mybatis如何传入一个list参数
- [LeetCode] Rotate Image n-by-n矩阵顺时针旋转
- Python Challenge 第六关
- ORA-12514: TNS:listener does not currently know of service requested in connect
- PAT 甲级 1087 All Roads Lead to Rome(SPFA+DP)
- python使用Queue进行进程间通信