我们平时在处理Excel文档,会涉及到工作表的复制。一般我们会遇到这两种工作表复制需求:单个Excel文档内将工作表复制多分
多个Excel文档之间,相互复制工作表
将多Excel文档中的工作表复制到同一个Excel文档中
针对与上述需求,我们可以使用如下代码去实现。
第一段代码:单Excel文档的工作表复制
代码说明:使用openpyxl库中的copy_worksheet()方法实现工作表复制
openpyxl库默认情况下无法跨文档复制,只能单文档内复制
# 导入专门用于处理Excel文档的Python第三方库openpyxl
import openpyxl
# 打开文档并获取文档中第一个工作表
wb = openpyxl.load_workbook('拼客学院2020年工资表.xlsx')
ws = wb[wb.sheetnames[0]]
# 复制第一个工作表并保存到文档中
ws_copy = wb.copy_worksheet(ws)
# 保存复制了新的数据后的文档
wb.save('test.xlsx')
第二段代码:跨Excel文档的工作表复制
代码说明:将文档中的第一个工作表复制到另一个文档中
使用Python并借助openpyxl库,下述代码实现了跨文档复制功能
# 导入专门用于处理Excel文档的Python第三方库openpyxl
import openpyxl
# 打开文档并获取文档中第一个工作表
wb = openpyxl.load_workbook('拼客学院2020年工资表.xlsx')
ws = wb[wb.sheetnames[0]]
# 打开一个新的文档并获取文档中的第一个工作表,用于保存从其他文档中复制过来的工作表
new_wb = openpyxl.Workbook()
new_ws = new_wb.active
# 通过遍历的方式获取被复制的工作表的数据并将数据写入到新的工作表中
for value in ws.iter_rows(min_row=1, max_row=ws.max_row, min_col=1, max_col=ws.max_column, values_only=True):
value = list(value)
new_ws.append(value)
# 保存新的工作表
new_wb.save('copy_from_other_workbook.xlsx')
End.