openpyxl复制一行
时间: 2025-04-27 13:30:24 浏览: 18
### 如何使用 Openpyxl 复制 Excel 工作表中的一行
为了实现从一个工作表复制一行数据到另一个位置或者同一个表格内的其他地方,可以采用如下方式。这涉及到读取特定行的内容并将其写入目标位置。
```python
from openpyxl import Workbook, load_workbook
def copy_row(src_ws, dst_ws, src_row_index, dst_row_index):
"""
将源工作表中的某一行复制到目的工作表指定的位置
参数:
src_ws (Worksheet): 源工作表对象
dst_ws (Worksheet): 目的工作表对象
src_row_index (int): 需要被复制的行索引(最小值为1)
dst_row_index (int): 数据将被粘贴的目标行索引(最小值为1)
"""
max_col = src_ws.max_column # 获取最大列数以便遍历整行
for col_idx in range(1, max_col + 1):
cell_value = src_ws.cell(row=src_row_index, column=col_idx).value
dst_ws.cell(row=dst_row_index, column=col_idx, value=cell_value)
# 加载现有的Excel文档作为例子
wb = load_workbook('example.xlsx')
ws_source = wb['Sheet1'] # 假设我们要从中复制数据的工作表名为'Sheet1'
ws_destination = wb.create_sheet(title="CopiedData") # 新建用于接收复制数据的工作表
copy_row(ws_source, ws_destination, 2, 1) # 这里是从第二行复制到新表的第一行
wb.save('output.xlsx') # 保存修改后的文件
```
上述代码展示了如何定义 `copy_row` 函数来完成这项任务,并给出了具体的调用实例[^1]。
#### 注意事项
- 当前版本仅考虑了简单的单元格数值复制;对于更复杂的场景比如公式、样式等,则需额外处理。
- 如果希望在同一张表内部移动而不是跨不同表之间转移数据,只需让 `src_ws` 和 `dst_ws` 变量指向相同的工作表即可。
阅读全文
相关推荐


















