• dajngo 表格数据导出


    正常数据量导出

    name = ["梧桐街道", "凤鸣街道", "河山镇", "崇福镇", "洲泉镇"]
                    for i in name:
                        station_qs = air_models.GreanKprMonitorDataDeviceDay.objects.filter(year=y,
                                                                                            street_name=i,
                                                                                            number=sum)
                        # 2.站点序列化
                        station_ser = serializers.Daily_Export_DataModelSerializer(station_qs, many=True).data
                        for i in station_ser:
                            data_list.append((i.get("gmt_create"),
                                              ("日报"),
                                              i.get("station_name"),
                                              i.get("street_name"),
                                              i.get("pollutions"),
                                              i.get("quality"),
                                              i.get("aqi"),
                                              i.get("pm2_5"),
                                              i.get("pm10"),
                                              i.get("no2"),
                                              i.get("o3"),
                                              i.get("so2"),
                                              i.get("co")))
                    columns = (
                        "时间", "类型", "站点名称", "街道名称", "首要污染物", "质量指数", "AQI", "PM2.5(μg/m³)", "PM10(μg/m³)", "SO2(μg/m³)",
                        "NO2(μg/m³)",
                        "O3(μg/m³)", "CO(mg/m³)")
                    workbook = xlwt.Workbook(encoding='utf-8')
                    # 添加一个表 参数为表名
                    sheet = workbook.add_sheet('demo')
                    for col, column in enumerate(columns):
                        sheet.write(0, col, column)
                    for i, item in enumerate(data_list):
                        for j, columns in enumerate(item):
                            sheet.write(i + 1, j, columns)
                    excel_name = "全部街道日报" + date_str.replace("-", "") + ".xls"
                    sio = io.BytesIO()
                    workbook.save(sio)
                    sio.seek(0)
                    response = HttpResponse(sio.getvalue(), content_type='application/vnd.ms-excel')  # 告诉浏览器是一xls
                    response['Content-Type'] = 'application/octet-stream'
                    response['Access-Control-Expose-Headers'] = "Content-Disposition, Content-Type"
                    response['Content-Disposition'] = 'attachment; filename={}'.format(
                        urlquote(excel_name))  # excel加头部    名称
                    response.write(sio.getvalue())
                    sio.close()
                    return response

    大数据导出

    sheets = []
                        wbk = xlwt.Workbook()
                        filename = date_str + "省控站站点.xls"
                        filename = urlquote(filename)
                        response = HttpResponse(content_type='application/vnd.ms-excel')
                        response['Content-Disposition'] = 'attachment; filename=%s' % (filename) + time.strftime('%Y%m%d',
                                                                                                                 time.localtime(
                                                                                                                     time.time())) + '.xls'
                        sheet = wbk.add_sheet("Log_0", cell_overwrite_ok=True)  # 创建工作页
                        row0 = ["时间", "类型", "地点名称", "AQI", "PM2.5(μg/m³)", "PM10(μg/m³)", "SO2(μg/m³)",
                                "NO2(μg/m³)",
                                "O3(μg/m³)", "CO(mg/m³)"]
                        sheets.append(sheet)
                        for i in range(0, len(row0)):
                            sheets[0].write(0, i, row0[i])
                        cursor = connections["default"].cursor()
                        sql1 = """SELECT pubtime ,a1.district,g.station,aqi,pm2_5,pm10,o3,no2,so2,co FROM txair_aircontrol as a1 RIGHT JOIN txair_stationcontrol as g ON g.station_code = a1.station_code
                                                                WHERE  DATE_FORMAT(pubtime,'%Y-%m-%d') BETWEEN '2021-01-01' and  '2021-12-31'"""
                        cursor.execute(sql1)
                        ret = cursor.fetchall()
                        # print(len(data))
                        num = 1  # 写入第几行
                        count = 1  # 写入第几条数据
    
                        if (len(ret)) < 0:
                            sheet.write(num, 0, "没有可以导出的日志信息")  # 工号
                        for d in ret:
                            scount = int(count / 65000)
                            if (len(sheets) <= scount):
                                sheets.append(wbk.add_sheet("Log_%s" % (scount + 1), cell_overwrite_ok=True))
                                for i in range(0, len(row0)):
                                    sheets[scount].write(0, i, row0[i])
                                    num = 1
                            sheet.write(num, 0, str(d[0]))  # 日志ID
                            sheet.write(num, 1, "省控站日报")  # 日志ID
                            sheet.write(num, 2, d[1])  # 操作内容
                            sheet.write(num, 3, d[2])  # 操作类型
                            sheet.write(num, 4, d[3])  # 操作人ID
                            sheet.write(num, 5, d[4])  # 操作人姓名
                            sheet.write(num, 6, d[5])  # 操作时间
                            sheet.write(num, 7, d[6])  # 操作时间
                            sheet.write(num, 8, d[7])  # 操作时间
                            sheet.write(num, 9, d[8])  # 操作时间
                            sheet.write(num, 10, d[9])  # 操作时间
                            num = num + 1
                            count = count + 1
                        wbk.save(response)
                        return response
  • 相关阅读:
    二维码生成:使用 JavaScript 库QRCode.js生成二维码
    VC++6.0远程调试(亲试成功)
    Linux同时安装python2和Python3
    Python打包-py2exe
    camera按键采集图像及waitKey的用法(转)
    ucos实时操作系统学习笔记——任务间通信(信号量)(转)
    STM32硬件IIC驱动设计(转)
    基于STM32F4移植W5500官方驱动库ioLibrary_Driver(转)
    USB基础知识概论(版本:v0.9.2)
    usb帧格式
  • 原文地址:https://www.cnblogs.com/zhenghuiwen/p/14688430.html
Copyright © 2020-2023  润新知