Django返回EXcel

本文介绍了一个使用Django框架实现从数据库中读取传感器数据并导出为Excel文件的方法。该方法通过处理HTTP GET请求获取指定参数,并利用xlwt库创建Excel文件,将SensorData模型中的数据写入Excel的不同列中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

coding:utf-8

from django.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response
from django.shortcuts import render
from django.http import HttpResponse
from app.models import
from app.form import LoginForm
from django.http import JsonResponse
import json
from json import loads, dumps
import simplejson
from django.views.decorators.csrf import csrf_exempt
import json
from django.contrib.auth.decorators import permission_required
from app.views import

import xlwt
import StringIO
from django.http import HttpResponse
from app.models import Sensor, SensorData
import json
from django.core.serializers.json import DjangoJSONEncoder

def excel_ajax(request):
if request.method == 'GET':
d1 = request.GET.get('data1')
d2 = request.GET.get('data2')
d3 = request.GET.get('data3')
d4 = request.GET.get('data4')
d5 = request.GET.get('data5')
d6 = request.GET.get('data6')
d7 = request.GET.get('data7')
d8 = request.GET.get('data8')
data_start = request.GET.get('data_start')
data_end = request.GET.get('data_end')
response = HttpResponse()
response['Content-Disposition'] = 'attachment;filename=excel.xls'
wb = xlwt.Workbook(encoding='utf-8')
sheet = wb.add_sheet(u'订单')
my_time = []
guang = []
co=[]
PH=[]
temp=[]
for i in SensorData.objects.filter(collertor_id=2):
co.extend([i.sensor_CO2])
guang.extend([i.sensor_guang])
PH.extend([i.sensor_tu_PH])
temp.extend([i.sensor_temp])
# 1st line
sheet.write(0, 0, '光照')
sheet.write(0, 1, 'PH')
sheet.write(0, 2, '温度')
sheet.write(0, 3, '湿度')
List = []
row = 1
for i in guang:
sheet.write(row, 0, i) # 此处是在第一列添加数据
# sheet.write(row,1, '测试1')#此处在第二列添加数据
# sheet.write(row,2,'测试2')#此处在第二列添加数据
# sheet.write(row,3,'测试3')#此处在第二列添加数据
row = row + 1
row=1
for i in PH:
sheet.write(row,1, i)#此处在第二列添加数据
row=row+1
row =1
for i in co:
sheet.write(row,2, i)#此处在第二列添加数据
row=row+1
row=1
for i in temp:
sheet.write(row,3, i)#此处在第二列添加数据
row=row+1

    output = StringIO.StringIO()
    wb.save(output)
    output.seek(0)
    response.write(output.getvalue())
    return response
    #return HttpResponse(data_start);

def farm_ajax(request):
if request.method == 'GET':
d1 = request.GET.get('data1')
d2 = request.GET.get('data2')
d3 = request.GET.get('data3')
d4 = request.GET.get('data4')
d5 = request.GET.get('data5')
d6 = request.GET.get('data6')
d7 = request.GET.get('data7')
d8 = request.GET.get('data8')
data_start = request.GET.get('data_start')
data_end = request.GET.get('data_end')
result =excel_ajax(request)
return HttpResponse(result)

转载于:https://www.cnblogs.com/linbinqiang/p/4925058.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值