在实际操作中,存储excel的数量超过一个sheet时的解决办法:
def create_source_excel(params, goods_ids, counts, file):
"""
生成源数据的excel文件
"""
quotient, remainder = divmod(len(params), 100000)
cycle_number = quotient + 1 if remainder else quotient
writer = None
for num in range(0, cycle_number): # excel中的每个sheet存储100000行数据
goods_id = goods_ids[num * 100000: (num + 1) * 100000]
count = counts[num * 100000: (num + 1) * 100000]
if num == 0:
df = pd.DataFrame({"商品id": goods_id, "出现的次数": count})
df.to_excel(f"{file}", index=False, sheet_name=f"分页")
writer = pd.ExcelWriter(f"{file}", mode="a", engine="openpyxl")
else:
df = pd.DataFrame({"商品id": goods_id, "出现的次数": count})
df.to_excel(writer, index=False, sheet_name=f"分页_{num}")
writer.save()
writer.close()