目录
问题及解决办法
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")
完美解决!!!生成的表格打开便不会再有警告提示。
文章出处登录后可见!
已经登录?立即刷新