openpyxl复制多行
时间: 2025-01-08 09:11:34 浏览: 1
### 使用 `openpyxl` 复制多行
为了实现使用 `openpyxl` 库来复制 Excel 文件中的多个行,可以按照如下方法操作:
首先,导入必要的模块并加载工作簿以及指定的工作表。
```python
import openpyxl
from openpyxl import Workbook
# 加载现有的Excel文件
wb = openpyxl.load_workbook('example.xlsx')
ws = wb.active # 获取活动工作表
```
定义一个函数用于复制特定范围内的行数据到另一位置。此过程涉及读取源区域的数据并将这些数据写入目标区域。
```python
def copy_rows(ws, src_start_row, dest_start_row, num_rows):
"""
将给定数量的行从起始行复制到新的起始行
参数:
ws: 工作表对象
src_start_row: 源行开始的位置
dest_start_row: 目标行开始的位置
num_rows: 要复制的行数
"""
for i in range(num_rows):
for col in ws.iter_cols(min_col=1, max_col=ws.max_column, min_row=src_start_row+i, max_row=src_start_row+i):
for cell in col:
new_cell = ws.cell(row=dest_start_row + i, column=cell.column)
if cell.value:
new_cell.value = cell.value
if cell.has_style:
new_cell.font = cell.font
new_cell.border = cell.border
new_cell.fill = cell.fill
new_cell.number_format = cell.number_format
new_cell.protection = cell.protection
new_cell.alignment = cell.alignment
```
调用上述定义好的函数完成实际的行复制动作,并保存修改后的文档。
```python
copy_rows(ws, 2, 5, 3) # 假设要将第2至4行的内容复制到第5行及其之后
wb.save('modified_example.xlsx') # 另存为新文件名
```
通过这种方式可以在不改变原有表格结构的情况下有效地移动或复制整行或多行记录[^1]。
阅读全文