如何使用OpenPyXl每日将数据写入Excel表格的最新空白行
用OpenPyXL实现每日数据自动写入Excel最新空白行
我来帮你搞定这个自动填充到最新空白行的问题!核心思路就是先定位到工作表已有数据的最后一行,然后在它的下一行写入新的val1a和t值。下面是具体的实现步骤和代码示例:
关键逻辑说明
- 获取最后数据行:OpenPyXL的
worksheet.max_row属性会返回当前工作表中包含数据的最后一行编号(比如已经写过A2:B2,这个值就是2)。 - 计算新写入行:新的空白行就是
max_row + 1,这样每次运行代码都会自动往下顺延一行。 - 写入并保存数据:在新行的A列放日期
t,B列放美元数值val1a,最后一定要保存工作簿才能生效。
适配你的代码片段
假设你已经完成了val1a和t的获取逻辑,补充后的完整代码应该是这样的:
from openpyxl import load_workbook # 这里是你已有的数值获取逻辑(示例) # val1a = 从其他函数拿到的美元数值 # t = date.today() # 你的日期生成逻辑 # 加载目标Excel文件(替换成你的文件路径) wb = load_workbook('daily_data.xlsx') # 获取目标工作表(用active取第一个表,也可以用wb['Sheet1']指定表名) ws = wb.active # 计算新数据要写入的行号 new_row_num = ws.max_row + 1 # 在新行写入数据:A列存日期,B列存美元值 ws.cell(row=new_row_num, column=1, value=t) ws.cell(row=new_row_num, column=2, value=val1a) # 保存修改,完成更新 wb.save('daily_data.xlsx')
额外细节提示
- 如果是第一次运行,工作表为空的情况下,
ws.max_row会返回1,new_row_num就是2,正好写入A2:B2,完全匹配你最初的需求。 - 如果你的表格有表头(比如A1是“日期”、B1是“美元金额”),这个逻辑依然适用,因为
max_row会自动识别表头后的最后数据行,新数据会自动追加到表头下方。 - 记得每次操作后调用
wb.save(),否则所有修改都不会被保存到本地文件里。
内容的提问来源于stack exchange,提问作者rook21
相关产品推荐
相关产品推荐

