python实现跨excel sheet复制代码实例

  • Post category:Python

下面是详细讲解Python实现跨Excel Sheet复制代码实例的完整教程。

一、问题背景

Excel是我们日常生活中常用的一种电子表格软件,同时可以用VBA脚本或Python代码扩展其功能。

在Excel表格中,我们有时会遇到需要将一个Sheet中的数据复制到另一个Sheet的情况,而使用传统的手动复制粘贴的方法效率较低,不利于批量处理大量数据,此时我们可以利用Python代码实现跨Excel Sheet的数据复制。

二、Python实现

Python中有多种操作Excel的库,最常见的是openpyxlxlrd/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中看到已经复制了源文件的数据。