Python openpyxl 库复制整个 Excel 工作表
Python openpyxl 库复制整个 Excel 工作表
之前错误地认为 openpyxl 库的 read_only 参数可以加载整个工作表,实际上它只会读取单元格的值。对于需要复制整个工作表的情况,我们需要使用 openpyxl 的 load_workbook 函数,然后逐个复制单元格。
以下是经过修正的代码,它将整个工作表复制到目标文件:
import os
import shutil
import openpyxl
# 定义源文件夹和目标文件夹路径
source_folder = '源文件夹路径'
target_folder = '目标文件夹路径'
# 遍历源文件夹中的 Excel 表格
for i in range(1, 101):
# 构建源文件路径和目标文件路径
source_file = os.path.join(source_folder, f'a{i}.xlsx')
target_file = os.path.join(target_folder, f'b{i}.xlsx')
# 打开源文件和目标文件
source_workbook = openpyxl.load_workbook(source_file)
target_workbook = openpyxl.load_workbook(target_file)
# 获取源文件的sheet1和目标文件的m工作簿
source_sheet = source_workbook['Sheet1']
target_sheet = target_workbook['m']
# 复制源文件的数据到目标文件
for row in source_sheet.iter_rows(min_row=1, max_row=492, max_col=10, values_only=True):
target_sheet.append(row)
# 保存目标文件
target_workbook.save(target_file)
# 关闭源文件和目标文件
source_workbook.close()
target_workbook.close()
# 复制完成
print("Excel表格数据复制完成!")
代码说明:
- 首先定义源文件夹和目标文件夹路径。
- 然后遍历源文件夹中的 Excel 表格,构建源文件路径和目标文件路径。
- 使用
openpyxl.load_workbook()函数打开源文件和目标文件。 - 获取源文件的 Sheet1 和目标文件的
m工作簿。 - 使用
source_sheet.iter_rows()函数遍历源工作表,并使用target_sheet.append()函数将数据复制到目标工作表。 - 最后保存目标文件并关闭源文件和目标文件。
希望这次的代码能够正确地将整个工作表复制到目标文件中。如果您还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/Xd4 著作权归作者所有。请勿转载和采集!