python中使用to_excel时如何不覆盖原有数据来新建sheet页

经常通过各种三方库操作Excel时,会遇到各种问题。这个库不支持这个方法,那个库支持但是又会丢失原来的数据。。。。都是问题!想想就让人头大,想揍一顿提这个需求的人。。。只是,有时候暴力不能解决问题

 所以,只要解决了制造问题的人,不就OK咯

    .

    .

    .

    .

我还想多活几年,还是看代码吧!!

import openpyxl
import pandas as pd


def add_sheet(data, excel_writer, sheet_name):
    """
    不改变原有Excel的数据,新增sheet。
    注:
        使用openpyxl操作Excel时Excel必需存在,因此要新建空sheet
        无论如何sheet页都会被新建,只是当sheet_name已经存在时会新建一个以1结尾的sheet,如:test已经存在时,新建sheet为test1,以此类推
    :param data: DataFrame数据
    :param excel_writer: 文件路径
    :param sheet_name: 新增的sheet名称
    :return:
    """
    book = openpyxl.load_workbook(excel_writer.path)
    excel_writer.book = book
    data.to_excel(excel_writer=excel_writer, sheet_name=sheet_name, index=None, header=False)

    excel_writer.close()


df = pd.DataFrame(['test', 'hello', 'world'])
excel_writer = pd.ExcelWriter(r"C:\Users\Desktop\test.xlsx", engine='openpyxl')

add_sheet(df, excel_writer, 'test')

  

结束。。

猜你喜欢

转载自www.cnblogs.com/rongge95500/p/12205521.html