pandas追加sheet到已有sheet的excel文件会覆盖的问题

pandas追加sheet到已有sheet的excel文件会覆盖的问题

问题:新建excel的sheet页的时候之前的表会消失,在网上找到如下解决办法:https://blog.csdn.net/qq_44315987/article/details/104100281,但是仍然不可以用。
研究了一下午,终于跑通了。

方法一:用这种方法在pycharm中可以正常运行,在影刀编码版不太通用。

import numpy as np
import pandas as pd
import openpyxl

filePath="D:/desktop/第一题+汇总成交率.xlsx"
# 1)出错了之后重新打开一下
try:
    # this statement shall raise error for Badzip file
    wb_obj = openpyxl.load_workbook(filename=filePath)
except:
    # try to create a new file and save at same path
    wb_obj = openpyxl.Workbook()
    wb_obj.save(filePath)
    wb_obj = openpyxl.load_workbook(filename=filePath)
# 2)创建excel写入对象
writer = pd.ExcelWriter(filePath, engine="openpyxl")
writer._book = wb_obj
# 3)写入数据
data3 = pd.DataFrame(np.random.randn(10, 5))
data3.to_excel(writer, sheet_name='新建的表')
#writer._save()#不要用这个来保存
# 4)关闭
writer.close()
wb_obj.close()

在这里插入图片描述
方法二:通用,不错

import pandas as pd

filePath = "D:/desktop/第一题+汇总成交率.xlsx"
# 加载原始数据
data = pd.read_excel(filePath, sheet_name='成交记录登记',header=None)

# 对原始数据进行处理,并将结果保存到result变量中
result = pd.DataFrame([[1, 2]], columns=["A", "B"])

# 创建一个ExcelWriter对象
writer = pd.ExcelWriter(filePath, engine='xlsxwriter')

# 将原始数据写入到Excel文件中
data.to_excel(writer, sheet_name='成交记录登记', index=False,header=False)

# 将处理后的结果写入到新的sheet页中
result.to_excel(writer, sheet_name='结果2', index=False,header=False)

# 关闭ExcelWriter对象
writer._save()

你可能感兴趣的:(python,pandas,excel)