python openpyxl复制sheet工作表到另一个工作簿代码

# python openpyxl复制sheet工作表到另一个工作簿代码
#
from openpyxl import Workbook,load_workbook

#方法1:
# def copy_sheet(src_xlsx,ssheetname,dst_xlsx,nsheetname=None):
#     '''
#     复制sheet工作表到另一个工作簿
#     :param src_xlsx:源xlsx工作簿文件(相对/绝对目录及文件名)包含xlsx后缀 不存在则报错 字符串类型
#     :param ssheetname:源工作表名 不存在则报错 字符串类型
#     :param dst_xlsx:复制后的工作表名 不填写默认与原名相同 字符串类型
#     :param nsheetname:目标xlsx工作簿文件 如不存在则创建
#     :return:
#     '''
#
#     if nsheetname==None:  # 如果nsheetname==None,
#         nsheetname=ssheetname
#     try:
#         sw=load_workbook(f'{src_xlsx}',data_only=True)
#     except KeyError:
#         raise KeyError('旧工作簿不存在 The old xlsx is not exists')
#     try:
#         dw=load_workbook(f'{dst_xlsx}')
#     except FileNotFoundError:
#         dw=Workbook()
#     try:
#         sheet = dw[f'{nsheetname}']
#     except KeyError:
#         sheet=dw.create_sheet(f'{nsheetname}')
#     try:
#         src_sheet=sw[f'{ssheetname}']
#     except KeyError:
#         raise KeyError('源工作簿文件不存在该工作簿 The sheet does not exist in the source file')
#     for row in src_sheet.iter_rows():
#         # print(row)
#         row_list=[]
#         for cell in row:
#             row_list.append(cell.value)
#         # print(row_list)
#         sheet.append(row_list)
#     dw.save(f'{dst_xlsx}')
#     dw.close()

# 方法2
def copy_sheet(src_xlsx,ssheetname,dst_xlsx,data_only=True):
    '''
    复制sheet工作表到另一个工作簿
    :param src_xlsx:源xlsx工作簿文件(相对/绝对目录及文件名)包含xlsx后缀 不存在则报错 字符串类型
    :param ssheetname:源工作表名 不存在则报错 字符串类型
    :param dst_xlsx:复制后的工作表名 不填写默认与原名相同 字符串类型
    :param data_only:如果为True,则数据保留为数值,否则False则保存为公式.
    :return:
    '''
    try:
        if data_only==True:
            sw=load_workbook(f'{src_xlsx}',data_only=True)
        else:
            sw = load_workbook(f'{src_xlsx}', data_only=False)
        sheets=sw.sheetnames
        print(sheets)
    except KeyError:
        raise KeyError('旧工作簿不存在 The old xlsx is not exists')

    for sh in sheets:
        if sh != ssheetname:
            print(f'正在删除{sh}')
            del sw[sh]


    sw.save(f'{dst_xlsx}')
    sw.close()
    print(f'{dst_xlsx}已经保存!')

if __name__ == '__main__':
    copy_sheet('jxgz.xlsx','汇总上交财务','汇总上交财务.xlsx',data_only=True)

你可能感兴趣的:(python,数据分析,开发语言)