python中使用pandas 导出到excel ,打开excel有错误,错误的提示为:发现“***”中的部分内容问题,是否让我们尽量尝试修复?如果您信任此工作簿的源,请单击“是”。

目录


 问题及解决办法

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")

完美解决!!!生成的表格打开便不会再有警告提示。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年11月3日
下一篇 2023年11月3日

相关推荐