目录
pd.ExcelWriter()
是 Pandas 库中的一个函数,用于创建一个 Excel 文件的写入器(Excel writer)对象,可以用来将数据写入 Excel 文件的不同工作表或不同区域。
使用以下代码输出内容到表格,用excel打开表格后会有报错提示:
# 写入数据到ecxel def writeDataIntoExcel(self,xlsPath: str, data: dict): try: # 读取已有的Excel文件 df_existing = pd.read_excel(xlsPath) # 获取已有内容的行数,从下一行开始写入新数据 start_row = df_existing.shape[0] + 1 # 创建要写入的新数据 data = pd.DataFrame(data) # 追加新数据到已有内容的末尾 book = load_workbook(xlsPath) writer = pd.ExcelWriter(xlsPath, engine='openpyxl') writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) # 将data_added数据写入Excel中 data.to_excel(writer, sheet_name="data", startrow=start_row, index=False, header=False) writer.save()# 保存 writer.close()# 关闭 print("Writing")
报错为:
发现问题出现的原因为:文件重复保存
data.to_excel()
方法会将数据写入指定的 Excel 文件,并自动保存文件。因此,不需要在此之后再调用writer.save()保存文件的方法。一旦执行了 data.to_excel()
,数据将会被写入 Excel 文件,文件会自动保存。
解决问题的方法为:注释掉writer.save()
# 写入数据到ecxel def writeDataIntoExcel(self,xlsPath: str, data: dict): try: # 读取已有的Excel文件 df_existing = pd.read_excel(xlsPath) # 获取已有内容的行数,从下一行开始写入新数据 start_row = df_existing.shape[0] + 1 # 创建要写入的新数据 data = pd.DataFrame(data) # 追加新数据到已有内容的末尾 book = load_workbook(xlsPath) writer = pd.ExcelWriter(xlsPath, engine='openpyxl') writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) # 将data_added数据写入Excel中 data.to_excel(writer, sheet_name="data", startrow=start_row, index=False, header=False) # writer.save()# 保存 writer.close()# 关闭 print("Writing")
完美解决!!!生成的表格打开便不会再有警告提示。
来源地址:https://blog.csdn.net/Msuperhl/article/details/131539122