下面是详细讲解Python实现跨Excel Sheet复制代码实例的完整教程。
一、问题背景
Excel是我们日常生活中常用的一种电子表格软件,同时可以用VBA脚本或Python代码扩展其功能。
在Excel表格中,我们有时会遇到需要将一个Sheet中的数据复制到另一个Sheet的情况,而使用传统的手动复制粘贴的方法效率较低,不利于批量处理大量数据,此时我们可以利用Python代码实现跨Excel Sheet的数据复制。
二、Python实现
Python中有多种操作Excel的库,最常见的是openpyxl
和xlrd/xlwt
,我们这里选用openpyxl
作为实现的库。
1.安装库
首先需要安装openpyxl
库:
!pip install openpyxl
2.导入库
安装完成后需要导入库:
import openpyxl
3.打开文件并读取Sheet
# 打开源文件
workbook = openpyxl.load_workbook('source.xlsx')
# 选择Sheet
source_sheet = workbook['Sheet1']
4.读取数据并复制
读取数据并进行复制:
# 读取数据并复制
for row in source_sheet.iter_rows(min_row=2):
# 遍历所有行,min_row=2表示从第2行开始
target_sheet.append([cell.value for cell in row])
5.保存文件
复制完成后需要保存文件:
workbook.save('target.xlsx')
三、案例示范
示例1
假设我们有一个名为source.xlsx的源文件,其中Sheet1中存储有如下数据:
序号 | 姓名 | 年龄 |
---|---|---|
1 | 小明 | 18 |
2 | 小红 | 19 |
3 | 小刚 | 20 |
现在我们需要将Sheet1中的数据复制到target.xlsx的Sheet2中,请按照以下步骤操作:
import openpyxl
# 打开源文件
workbook = openpyxl.load_workbook('source.xlsx')
# 选择Sheet
source_sheet = workbook['Sheet1']
# 打开目标文件
workbook_blank = openpyxl.Workbook()
# 选择Sheet
target_sheet = workbook_blank.active
# 读取数据并复制
for row in source_sheet.iter_rows(min_row=2):
target_sheet.append([cell.value for cell in row])
# 保存文件
workbook_blank.save('target.xlsx')
操作完成后,我们可以在target.xlsx的Sheet2中看到已经复制了源文件的数据。
示例2
再假设现在我们有一个名为source2.xlsx的源文件,其中Sheet5中存储有如下数据:
编号 | 用户名 | 密码 | 手机号码 |
---|---|---|---|
1 | test1 | 123456 | 13512345678 |
2 | test2 | abcdef | 13612345678 |
3 | test3 | 111111 | 13712345678 |
4 | test4 | 222222 | 13812345678 |
现在我们需要将Sheet5中的数据复制到target2.xlsx的Sheet1中,请按照以下步骤操作:
import openpyxl
# 打开源文件
workbook = openpyxl.load_workbook('source2.xlsx')
# 选择Sheet
source_sheet = workbook['Sheet5']
# 打开目标文件
workbook_blank = openpyxl.Workbook()
# 选择Sheet
target_sheet = workbook_blank.active
# 读取数据并复制
for row in source_sheet.iter_rows(min_row=2):
target_sheet.append([cell.value for cell in row])
# 保存文件
workbook_blank.save('target2.xlsx')
操作完成后,我们可以在target2.xlsx的Sheet1中看到已经复制了源文件的数据。