前言
在日常办公自动化或数据处理场景中,复制 excel 中的单元格、行、列是高频需求——比如批量复用模板数据、迁移特定列数据、复制带格式的报表内容等。今天给大家分享一款轻量且强大的 python 库:free spire.xls for python,它无需依赖 microsoft excel,就能实现 excel 文件的读写与复制操作,支持 .xls 和 .xlsx 格式,免费版足以满足大多数个人和小型项目需求。本文将从环境准备到实战案例,详细讲解如何使用该免费库实现「单元格复制」「行复制」「列复制」。
一、环境准备:安装免费 python 库
首先通过pip命令安装库,支持python 3.6及以上版本:
pip install spire.xls.free
⚠️ 注意:免费版限制单次处理最多5个工作表、每个工作表最多200行数据,适用于小型文件
二、核心实战:复制 excel 元素的3种场景
以下案例将围绕「测试文件source.xlsx」展开,文件结构如下(sheet1为源数据,sheet2为目标工作表):
| a列(姓名) | b列(年龄) | c列(城市) |
|---|---|---|
| 张三 | 25 | 北京 |
| 李四 | 30 | 上海 |
| 王五 | 28 | 广州 |
场景1:复制 excel 单元格 / 单元格范围
对于单个单元格或连续单元格范围,使用 cellrange.copy()方法,支持精准复制指定区域。
关键参数说明:
destrange:目标单元格 / 范围对象(需与源范围尺寸一致)copyoptions:复制选项(默认copyrangeoptions.all)
实战代码 :复制单个单元格
需求:将sheet1中a1(姓名)复制到a4。
from spire.xls import *
from spire.xls.common import *
# 1. 加载excel文件
workbook = workbook()
workbook.loadfromfile("source.xlsx")
# 2. 获取源工作表(sheet1)
worksheet = workbook.worksheets[0] # 索引从0开始,对应sheet1
# 3. 复制单元格(源单元格.copy(目标单元格))
# 复制a1到a4
source_cell = worksheet.range["a1"] # 通过单元格地址获取
target_cell = worksheet.range["a4"]
source_cel1.copy(target_cell, copyrangeoptions.all)
# 4. 保存结果文件
workbook.savetofile("result_cell_copy.xlsx")
workbook.dispose() # 释放资源,避免文件占用
print("单元格复制完成!")
如需复制单元格范围,如 a1: c3,使用 worksheet.range["a1: c3"]。
场景2:复制 excel 中的指定行
行复制适用于批量复用整行数据(如模板行、表头行)。提供 worksheet.copyrow() 方法复制行,支持同步数据、格式、公式。
关键参数说明:
sourcerow:源行对象(需通过worksheet.rows[index]获取,索引从 0 开始)destsheet:目标工作表对象destrowindex:目标行索引(从 1 开始,对应 excel 实际行号)copyoptions:复制选项(copyrangeoptions.all表示复制所有属性:值、格式、公式等)
实战代码:跨工作表复制行
复制 sheet1 的第2行(李四、30、上海)到 sheet2 第1行。
from spire.xls import *
from spire.xls.common import *
workbook = workbook()
workbook.loadfromfile("source.xlsx")
worksheet = workbook.worksheets[0]
# 获取源工作表与目标工作表
source_sheet = workbook.worksheets[0] # sheet1(源)
target_sheet = workbook.worksheets[1] # sheet2(目标)
# 复制指定行
source_row = source_sheet.rows[1]
source_sheet.copyrow(row, target_sheet, 1, copyrangeoptions.all)
workbook.savetofile("result_row_copy.xlsx")
workbook.dispose()
场景3:复制 excel 中的指定列
列复制与行复制逻辑类似,适用于迁移特定字段。使用 worksheet.copycolumn() 方法复制列,参数如下:
sourcecolumn:源列对象(通过worksheet.columns[index]获取,索引从 0 开始)destcolindex:目标列索引(从 1 开始,对应 excel 实际列号)- 其他参数与
copyrow一致
实战代码:通工作表复制列
复制 sheet1 的c列(城市)到同工作表的d列。
from spire.xls import workbook
workbook = workbook()
workbook.loadfromfile("source.xlsx")
worksheet = workbook.worksheets[0]
# 复制c列(第3列)到d列(第4列)
source_column = worksheet.columns[2]
worksheet.copycolumn(source_column, worksheet, 4, copyrangeoptions.all)
workbook.savetofile("result_column_copy.xlsx")
workbook.dispose()
注意事项: 务必在操作完成后调用
workbook.dispose(),或使用with语句自动释放资源,避免excel文件被占用。
free spire.xls for python 是一款免费轻量化的 excel 处理工具,相比 openpyxl、xlrd 等库,它在「格式复制」「公式处理」上更便捷,且无需依赖excel环境,无论是简单的数据复制还是复杂的报表模板复用,这些方法都能满足高效办公需求。
总结
到此这篇关于如何使用python高效复制excel 行、列、单元格的文章就介绍到这了,更多相关python复制excel 行、列、单元格内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论