MyEMS开源能源管理系统核心代码解读017

简介: MyEMS开源能源管理系统助力企业、园区实现低碳发展,支持电、水、气等能源数据采集分析及光伏、储能、充电桩等智能管理。提供设备批量分析报表导出功能,代码开源可定制。

本期解读:
组合设备批量分析导出报表方法:myems-api/excelexporters/combinedequipmentbatch.py
源代码链接:https://gitee.com/myems/myems/blob/master/myems-api/excelexporters/combinedequipmentbatch.py?sessionid=366143151
这段代码是一个Python脚本,用于生成一个包含特定报告数据的Excel文件,并将该文件编码为Base64格式。整个过程分为三个主要步骤:验证报告数据、生成Excel文件、将Excel文件编码为Base64。下面是对代码的详细解析:

第一步:验证报告数据

  • 检查传入的result参数是否为None。如果是,则函数返回None,表示没有数据可供处理。

第二步:生成Excel文件

  • 使用openpyxl库创建一个新的Excel工作簿,并设置活动工作表的标题为"CombinedEquipmentBatch"。
  • 调整行高和列宽,以及设置字体、边框和填充样式,以美化Excel文件的外观。
  • 在Excel文件中插入一个图片(假设为"myems.png"),并设置标题和报告的时间范围。
  • 根据报告数据(report参数),在Excel中填充数据。这包括设备名称、空间名称和各个能源类别的值。
  • 使用uuid生成一个唯一的文件名,并将工作簿保存为这个文件名的Excel文件。

    第三步:将Excel文件编码为Base64

  • 打开刚刚生成的Excel文件,读取其内容。
  • 将文件内容编码为Base64格式,以便可以通过文本方式传输或存储。
  • 删除服务器上的原始Excel文件,以避免占用不必要的空间。
  • 返回Base64编码后的字符串。

    代码中的一些关键函数和类

  • openpyxl.Workbook(): 创建一个新的Excel工作簿。
  • openpyxl.drawing.image.Image: 在Excel工作簿中插入图片。
  • openpyxl.styles: 设置单元格的字体、边框、对齐方式和填充样式。
  • base64.b64encode(): 将二进制数据编码为Base64格式。
相关文章
|
弹性计算
阿里云备案审核一般多久能过?域名备案需要几天?
阿里云域名备案是大家比较关心的问题,尤其是网站域名备案时间,阿里云备案时间还是比较快的,如果用户材料齐全,提交到阿里云审核无误后,一般一天即可提交到所对应省事的管局,备案号下来的时间要以管局的审核时间为准,一般管局审核时间为10天左右。
|
存储 传感器 自动驾驶
几种常见的点云格式数据解析与在线预览
3D模型在线转换网站支持pcd、pts、xyz、las、laz、asc、ply等点云格式文件在线预览,同时支持将点云格式在线转换为ply、xyz等模型格式。
5517 1
|
JavaScript 数据库
uni-app的多环境部署配置
分享下如何对uni-app项目进行多环境打包部署改造
2438 0
|
1月前
|
数据采集 算法 数据挖掘
MyEMS:2025 年能源管理系统性价比之巅的实力担当
在全球节能减排趋势下,MyEMS凭借高效能、低成本和智能化管理,成为2025年备受推崇的能源管理系统,助力工业、商业、医疗等多领域实现节能降本与可持续发展。
70 0
|
2月前
|
数据采集 网络协议 数据库
MyEMS能源管理系统后台配置-数据采集功能
MyEMS开源能源管理系统支持建筑、工厂等场景的电、水、气等能源数据采集与分析,提供光伏、储能、充电桩等多种可选功能。
47 0
|
存储
使用mediapipe实现ikun表情包制作
使用mediapipe实现ikun表情包制作
1038 0
|
语音技术
同一个语音为什么识别结果还不一致的,有大佬知道原因吗(Paraformer语音识别-中文-通用-16k-离线-large-热词版)
模型speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404,在线体验同一个语音识别结果不一致(https://modelscope.cn/models/damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404/summary)
425 0
|
编解码 计算机视觉 C++
OpenCV 打开双目摄像头(python版)
本文主要介绍在OpenCV用使用双目摄像头,包括:打开单目摄像头、设置摄像头参数、拍照、录制视频。
807 0
|
Java 关系型数据库 MySQL
13-Jmeter连接mysql数据库
13-Jmeter连接mysql数据库
|
Java Maven Windows
Windows安装Maven(图文解说详细版)(上)
Windows安装Maven(图文解说详细版)(上)
Windows安装Maven(图文解说详细版)(上)