# 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 openpyxl复制sheet工作表到另一个工作簿代码
最新推荐文章于 2025-05-16 16:09:52 发布
这段代码展示了如何使用Python的openpyxl库从一个Excel文件复制工作表到另一个Excel文件。它首先加载源工作簿,然后创建或获取目标工作簿,接着将源工作表的数据复制到目标工作簿中。提供了两个方法,一个默认只保留数据,另一个允许选择是否保留公式。
该文章已生成可运行项目,
本文章已经生成可运行项目
1329

被折叠的 条评论
为什么被折叠?



