下面我将详细讲解“Python实现跨Excel Sheet复制代码实例”的实现教程。
1. 安装相关库
Python实现跨Excel Sheet复制需要使用到的库有openpyxl
和pandas
,所以需要先安装这两个库。
可以使用以下命令来安装:
pip install openpyxl pandas
2. 获取Excel数据
首先,我们需要打开源Excel文件,获取数据。我们可以使用openpyxl
库中的load_workbook()
方法来打开Excel文件,并使用active
属性来获取当前工作Sheet。
import openpyxl
workbook = openpyxl.load_workbook("source.xlsx")
worksheet = workbook.active
接下来,我们需要获取Sheet中的数据。我们可以使用worksheet.iter_rows()
方法来迭代每一行,并将其转换为可操作的数据格式。在这里,我们将每一行数据转换为列表形式并存储在一个列表中。
data = []
for row in worksheet.iter_rows(min_row=2):
row_data = []
for cell in row:
row_data.append(cell.value)
data.append(row_data)
3. 复制数据到目标Sheet
现在,我们已经成功获取了Excel数据,接下来我们需要在目标Sheet中复制这些数据。我们可以使用pandas
库中的dataframe
来处理数据,并使用openpyxl
库中的Worksheet().cell()
方法来写入数据。我们还需要指定写入数据的行和列位置。
import pandas as pd
target_sheet = workbook["target_sheet_name"]
df = pd.DataFrame(data)
for index, row in df.iterrows():
for col_index, value in enumerate(row):
target_sheet.cell(row=index+2, column=col_index+1, value=value)
在上面的代码中,我们使用了enumerate()
函数来获取列的索引,这样就可以将数据写入正确的列位置。
示例一
假设我们需要将名为source.xlsx
的文件中的Sheet1中的数据复制到名为target.xlsx
的文件的Sheet2中。
参考代码:
import openpyxl
import pandas as pd
# 打开源文件
src_workbook = openpyxl.load_workbook("source.xlsx")
src_worksheet = src_workbook["Sheet1"]
# 获取数据
data = []
for row in src_worksheet.iter_rows(min_row=2):
row_data = []
for cell in row:
row_data.append(cell.value)
data.append(row_data)
# 打开目标文件
dest_workbook = openpyxl.load_workbook("target.xlsx")
dest_worksheet = dest_workbook["Sheet2"]
# 将数据复制到目标Sheet
df = pd.DataFrame(data)
for index, row in df.iterrows():
for col_index, value in enumerate(row):
dest_worksheet.cell(row=index+2, column=col_index+1, value=value)
# 保存目标文件
dest_workbook.save("target.xlsx")
示例一中,我们首先打开源Excel文件并获取数据,然后打开目标Excel文件并将数据复制到目标Sheet,最后保存Excel文件。
示例二
假设我们有两个名为source1.xlsx
和source2.xlsx
的文件,每个文件中都有名为Sheet1
的Sheet,我们需要将两个文件中的数据都复制到名为target.xlsx
的文件中的不同Sheet。
参考代码:
import openpyxl
import pandas as pd
# 打开源文件1
src1_workbook = openpyxl.load_workbook("source1.xlsx")
src1_worksheet = src1_workbook["Sheet1"]
# 获取数据1
data1 = []
for row in src1_worksheet.iter_rows(min_row=2):
row_data = []
for cell in row:
row_data.append(cell.value)
data1.append(row_data)
# 打开源文件2
src2_workbook = openpyxl.load_workbook("source2.xlsx")
src2_worksheet = src2_workbook["Sheet1"]
# 获取数据2
data2 = []
for row in src2_worksheet.iter_rows(min_row=2):
row_data = []
for cell in row:
row_data.append(cell.value)
data2.append(row_data)
# 打开目标文件
dest_workbook = openpyxl.load_workbook("target.xlsx")
dest_worksheet1 = dest_workbook["Sheet1"]
dest_worksheet2 = dest_workbook["Sheet2"]
# 将数据1复制到目标Sheet1
df1 = pd.DataFrame(data1)
for index, row in df1.iterrows():
for col_index, value in enumerate(row):
dest_worksheet1.cell(row=index+2, column=col_index+1, value=value)
# 将数据2复制到目标Sheet2
df2 = pd.DataFrame(data2)
for index, row in df2.iterrows():
for col_index, value in enumerate(row):
dest_worksheet2.cell(row=index+2, column=col_index+1, value=value)
# 保存目标文件
dest_workbook.save("target.xlsx")
示例二中,我们首先打开两个源Excel文件并获取数据,然后打开目标Excel文件并将数据复制到目标Sheet,最后保存Excel文件。需要注意的是,在示例二中我们使用了两个不同的目标Sheet,所以单独为两个目标Sheet进行了数据复制。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现跨excel sheet复制代码实例 - Python技术站