如何使用Python高效復(fù)制Excel?行、列、單元格
前言
在日常辦公自動(dòng)化或數(shù)據(jù)處理場(chǎng)景中,復(fù)制 Excel 中的單元格、行、列是高頻需求——比如批量復(fù)用模板數(shù)據(jù)、遷移特定列數(shù)據(jù)、復(fù)制帶格式的報(bào)表內(nèi)容等。今天給大家分享一款輕量且強(qiáng)大的 Python 庫(kù):Free Spire.XLS for Python,它無(wú)需依賴 Microsoft Excel,就能實(shí)現(xiàn) Excel 文件的讀寫與復(fù)制操作,支持 .xls 和 .xlsx 格式,免費(fèi)版足以滿足大多數(shù)個(gè)人和小型項(xiàng)目需求。本文將從環(huán)境準(zhǔn)備到實(shí)戰(zhàn)案例,詳細(xì)講解如何使用該免費(fèi)庫(kù)實(shí)現(xiàn)「單元格復(fù)制」「行復(fù)制」「列復(fù)制」。
一、環(huán)境準(zhǔn)備:安裝免費(fèi) Python 庫(kù)
首先通過(guò)pip命令安裝庫(kù),支持Python 3.6及以上版本:
pip install spire.xls.free
?? 注意:免費(fèi)版限制單次處理最多5個(gè)工作表、每個(gè)工作表最多200行數(shù)據(jù),適用于小型文件
二、核心實(shí)戰(zhàn):復(fù)制 Excel 元素的3種場(chǎng)景
以下案例將圍繞「測(cè)試文件source.xlsx」展開,文件結(jié)構(gòu)如下(Sheet1為源數(shù)據(jù),Sheet2為目標(biāo)工作表):
| A列(姓名) | B列(年齡) | C列(城市) |
|---|---|---|
| 張三 | 25 | 北京 |
| 李四 | 30 | 上海 |
| 王五 | 28 | 廣州 |
場(chǎng)景1:復(fù)制 Excel 單元格 / 單元格范圍
對(duì)于單個(gè)單元格或連續(xù)單元格范圍,使用 CellRange.Copy()方法,支持精準(zhǔn)復(fù)制指定區(qū)域。
關(guān)鍵參數(shù)說(shuō)明:
destRange:目標(biāo)單元格 / 范圍對(duì)象(需與源范圍尺寸一致)copyOptions:復(fù)制選項(xiàng)(默認(rèn)CopyRangeOptions.All)
實(shí)戰(zhàn)代碼 :復(fù)制單個(gè)單元格
需求:將Sheet1中A1(姓名)復(fù)制到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開始,對(duì)應(yīng)Sheet1
# 3. 復(fù)制單元格(源單元格.Copy(目標(biāo)單元格))
# 復(fù)制A1到A4
source_cell = worksheet.Range["A1"] # 通過(guò)單元格地址獲取
target_cell = worksheet.Range["A4"]
source_cel1.Copy(target_cell, CopyRangeOptions.All)
# 4. 保存結(jié)果文件
workbook.SaveToFile("result_cell_copy.xlsx")
workbook.Dispose() # 釋放資源,避免文件占用
print("單元格復(fù)制完成!")
如需復(fù)制單元格范圍,如 A1: C3,使用 worksheet.Range["A1: C3"]。
場(chǎng)景2:復(fù)制 Excel 中的指定行
行復(fù)制適用于批量復(fù)用整行數(shù)據(jù)(如模板行、表頭行)。提供 Worksheet.CopyRow() 方法復(fù)制行,支持同步數(shù)據(jù)、格式、公式。
關(guān)鍵參數(shù)說(shuō)明:
sourceRow:源行對(duì)象(需通過(guò)Worksheet.Rows[index]獲取,索引從 0 開始)destSheet:目標(biāo)工作表對(duì)象destRowIndex:目標(biāo)行索引(從 1 開始,對(duì)應(yīng) Excel 實(shí)際行號(hào))copyOptions:復(fù)制選項(xiàng)(CopyRangeOptions.All表示復(fù)制所有屬性:值、格式、公式等)
實(shí)戰(zhàn)代碼:跨工作表復(fù)制行
復(fù)制 Sheet1 的第2行(李四、30、上海)到 sheet2 第1行。
from spire.xls import *
from spire.xls.common import *
workbook = Workbook()
workbook.LoadFromFile("source.xlsx")
worksheet = workbook.Worksheets[0]
# 獲取源工作表與目標(biāo)工作表
source_sheet = workbook.Worksheets[0] # Sheet1(源)
target_sheet = workbook.Worksheets[1] # Sheet2(目標(biāo))
# 復(fù)制指定行
source_row = source_sheet.Rows[1]
source_sheet.CopyRow(row, target_sheet, 1, CopyRangeOptions.All)
workbook.SaveToFile("result_row_copy.xlsx")
workbook.Dispose()
場(chǎng)景3:復(fù)制 Excel 中的指定列
列復(fù)制與行復(fù)制邏輯類似,適用于遷移特定字段。使用 Worksheet.CopyColumn() 方法復(fù)制列,參數(shù)如下:
sourceColumn:源列對(duì)象(通過(guò)Worksheet.Columns[index]獲取,索引從 0 開始)destColIndex:目標(biāo)列索引(從 1 開始,對(duì)應(yīng) Excel 實(shí)際列號(hào))- 其他參數(shù)與
CopyRow一致
實(shí)戰(zhàn)代碼:通工作表復(fù)制列
復(fù)制 Sheet1 的C列(城市)到同工作表的D列。
from spire.xls import Workbook
workbook = Workbook()
workbook.LoadFromFile("source.xlsx")
worksheet = workbook.Worksheets[0]
# 復(fù)制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()
注意事項(xiàng): 務(wù)必在操作完成后調(diào)用
workbook.Dispose(),或使用with語(yǔ)句自動(dòng)釋放資源,避免Excel文件被占用。
Free Spire.XLS for Python 是一款免費(fèi)輕量化的 Excel 處理工具,相比 openpyxl、xlrd 等庫(kù),它在「格式復(fù)制」「公式處理」上更便捷,且無(wú)需依賴Excel環(huán)境,無(wú)論是簡(jiǎn)單的數(shù)據(jù)復(fù)制還是復(fù)雜的報(bào)表模板復(fù)用,這些方法都能滿足高效辦公需求。
總結(jié)
到此這篇關(guān)于如何使用Python高效復(fù)制Excel 行、列、單元格的文章就介紹到這了,更多相關(guān)Python復(fù)制Excel 行、列、單元格內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android應(yīng)用開發(fā)中Action bar編寫的入門教程
這篇文章主要介紹了Android應(yīng)用開發(fā)中ActionBar編寫的入門教程,Action Bar可以實(shí)現(xiàn)的功能很多,比如導(dǎo)航菜單和標(biāo)簽頁(yè)切換等,需要的朋友可以參考下2016-02-02
詳解python環(huán)境安裝selenium和手動(dòng)下載安裝selenium的方法
這篇文章主要介紹了詳解python環(huán)境安裝selenium和手動(dòng)下載安裝selenium的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Python實(shí)現(xiàn)數(shù)據(jù)集劃分(訓(xùn)練集和測(cè)試集)
這篇文章主要為大家詳細(xì)介紹了Python是如何實(shí)現(xiàn)數(shù)據(jù)集劃分的,分為訓(xùn)練集和測(cè)試集,文中的實(shí)現(xiàn)方法講解詳細(xì),感興趣的小伙伴可以了解一下2023-05-05
Python實(shí)現(xiàn)極限車神游戲的示例代碼
今天小編要為大家介紹一款小編自己用Python代碼碼出來(lái)的賽車風(fēng)格的打字小游戲,不僅能游戲還能學(xué)到很多不同類型的編程代碼關(guān)鍵字的語(yǔ)言,需要的可以參考一下2023-02-02
使用python list 查找所有匹配元素的位置實(shí)例
今天小編就為大家分享一篇使用python list 查找所有匹配元素的位置實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Python實(shí)現(xiàn)json對(duì)值進(jìn)行模糊搜索的示例詳解
我經(jīng)常使用json進(jìn)行存儲(chǔ)配置,于是常常遇到這樣的問(wèn)題:如果想要對(duì)某個(gè)數(shù)組里的值進(jìn)行模糊搜索,同時(shí)輸出相關(guān)的其他數(shù)組相同位置的的值該如何實(shí)現(xiàn)呢?本文就來(lái)和大家詳細(xì)聊聊2023-01-01
Python+KgCaptcha實(shí)現(xiàn)驗(yàn)證碼的開發(fā)詳解
驗(yàn)證碼通常是為了區(qū)分用戶是人還是計(jì)算機(jī),也可以防止解開密碼等惡意行為,而客戶端上多數(shù)會(huì)用在關(guān)鍵操作上?,F(xiàn)在驗(yàn)證碼的種類樣式也特別多,本文主要介紹了如何用Python和KgCaptcha做出驗(yàn)證碼功能,需要的可以參考一下2023-04-04

