我正在开发一个项目,需要将体重秤的实时数据记录到 Excel 工作表中。问题是只有当我单击 Excel 工作表中的特定单元格时才应记录数据。如何使用 python 或 scala 或其他方法实现此功能?任何指导或代码片段将不胜感激!
首先使用 pip 安装 pyserial 和 openpyxl 软件包:
pip install openpyxl pyserial
然后您可以使用下面的 Python 脚本读取数据并将数据写入 Excel 文件。我尝试将其写入 xlsx 文件。端口和波特率可能会有所不同,如果您不读取任何数据,请相应更改:
import serial
import openpyxl
from openpyxl import load_workbook
import time
ser = serial.Serial('COM3', 9600, timeout=1)
excel_file = 'weigh_data.xlsx'
try:
workbook = load_workbook(filename=excel_file)
except FileNotFoundError:
workbook = openpyxl.Workbook()
workbook.save(excel_file)
sheet = workbook.active
def log_to_excel(weight):
next_row = sheet.max_row + 1
sheet[f'A{next_row}'] = weight
workbook.save(excel_file)
while True:
if ser.in_waiting > 0:
weight_data = ser.readline().decode('utf-8').rstrip()
log_to_excel(weight_data)
print(f"weight: {weight_data}")
time.sleep(1) # I also put sleep to read data every second
else:
print("no data available from the scale")
ser.close()