Python openpyxl 库复制整个 Excel 工作表

之前错误地认为 openpyxl 库的 read_only 参数可以加载整个工作表,实际上它只会读取单元格的值。对于需要复制整个工作表的情况,我们需要使用 openpyxlload_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() 函数将数据复制到目标工作表。
  • 最后保存目标文件并关闭源文件和目标文件。

希望这次的代码能够正确地将整个工作表复制到目标文件中。如果您还有其他问题,请随时提问。

Python openpyxl 库复制整个 Excel 工作表

原文地址: https://www.cveoy.top/t/topic/Xd4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录