使用Python實(shí)現(xiàn)高效復(fù)制Excel行列與單元格
在日常辦公自動(dòng)化或數(shù)據(jù)處理場(chǎng)景中,復(fù)制 Excel 中的單元格、行、列是高頻需求——比如批量復(fù)用模板數(shù)據(jù)、遷移特定列數(shù)據(jù)、復(fù)制帶格式的報(bào)表內(nèi)容等。今天給大家分享一款免費(fèi)的 Python 庫(kù):Free Spire.XLS for Python,它無需依賴 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)備:安裝Free Spire.XLS for Python
首先通過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ù)說明:
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"] # 通過單元格地址獲取
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ù)說明:
sourceRow:源行對(duì)象(需通過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ì)象(通過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 語句自動(dòng)釋放資源,避免Excel文件被占用。
Free Spire.XLS for Python 是一款免費(fèi)輕量化的 Excel 處理工具,相比 openpyxl、xlrd 等庫(kù),它在「格式復(fù)制」「公式處理」上更便捷,且無需依賴Excel環(huán)境,無論是簡(jiǎn)單的數(shù)據(jù)復(fù)制還是復(fù)雜的報(bào)表模板復(fù)用,這些方法都能滿足高效辦公需求。
到此這篇關(guān)于使用Python實(shí)現(xiàn)高效復(fù)制Excel行列與單元格的文章就介紹到這了,更多相關(guān)Python復(fù)制Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python numpy實(shí)現(xiàn)rolling滾動(dòng)案例
這篇文章主要介紹了python numpy實(shí)現(xiàn)rolling滾動(dòng)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
python使用paramiko執(zhí)行服務(wù)器腳本并拿到實(shí)時(shí)結(jié)果
這篇文章主要介紹了python使用paramiko執(zhí)行服務(wù)器腳本并拿到實(shí)時(shí)結(jié)果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
pycharm配置當(dāng)鼠標(biāo)懸停時(shí)快速提示方法參數(shù)
這篇文章主要介紹了pycharm中配置當(dāng)鼠標(biāo)懸停時(shí)快速提示方法參數(shù),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
解析Python中的eval()、exec()及其相關(guān)函數(shù)
本篇文章主要介紹了解析Python中的eval()、exec()及其相關(guān)函數(shù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
Django在視圖中使用表單并和數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互的實(shí)現(xiàn)
本文主要介紹了Django在視圖中使用表單并和數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Python實(shí)現(xiàn)刪除當(dāng)前目錄下除當(dāng)前腳本以外的文件和文件夾實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)刪除當(dāng)前目錄下除當(dāng)前腳本以外的文件和文件夾的方法,涉及Python針對(duì)目錄及文件的刪除技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
用gpu訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),用tensorflow-cpu跑出錯(cuò)的原因及解決方案
這篇文章主要介紹了用gpu訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),用tensorflow-cpu跑出錯(cuò)的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03

