Python實(shí)現(xiàn)合并帶有嵌入圖片的單元格
1、庫的安裝
庫 | 用途 | 安裝 |
---|---|---|
xlwings | 控制打開Excel的軟件 | pip install xlwings -i https://pypi.tuna.tsinghua.edu.cn/simple/ |
os | 獲取絕對路徑 | 內(nèi)置庫無需安裝 |
2、核心代碼
①:計(jì)算唯一項(xiàng)所占單元格函數(shù)
# 讀取Excel文件 df = pd.read_excel('運(yùn)單號提取結(jié)果.xlsx', keep_default_na='', engine='openpyxl') # 獲取A列數(shù)據(jù) column_a = df.iloc[:, 0] # 選擇第一列 # 創(chuàng)建一個(gè)字典來存儲(chǔ)結(jié)果 result = {} # 記錄當(dāng)前值和它的起始位置 current_value = None start_index = None # 遍歷A列的每一行 for index, value in enumerate(column_a, start=2): # start=2 使索引從2開始 if current_value is None: current_value = value start_index = index elif value != current_value: # 如果值發(fā)生變化,且之前的值有多行 if index - start_index > 1: result[str(current_value)] = [start_index, index - 1] current_value = value start_index = index # 處理最后一組數(shù)據(jù) if len(column_a) - start_index + 1 > 1: result[str(current_value)] = [start_index, len(column_a) + 1]
②:合并單元格
# 使用xlwings加載Excel文件 app = xw.App(visible=False) wb = app.books.open('運(yùn)單號提取結(jié)果.xlsx') ws = wb.sheets[0] # 合并單元格,并保留圖片 for value, range_list in result.items(): # 合并A列 ws.range(f'A{range_list[0]}:A{range_list[1]}').merge() # 合并C列 ws.range(f'C{range_list[0]}:C{range_list[1]}').merge()
3、完整代碼
import xlwings as xw import pandas as pd # 讀取Excel文件 df = pd.read_excel('運(yùn)單號提取結(jié)果.xlsx', keep_default_na='', engine='openpyxl') # 獲取A列數(shù)據(jù) column_a = df.iloc[:, 0] # 選擇第一列 # 創(chuàng)建一個(gè)字典來存儲(chǔ)結(jié)果 result = {} # 記錄當(dāng)前值和它的起始位置 current_value = None start_index = None # 遍歷A列的每一行 for index, value in enumerate(column_a, start=2): # start=2 使索引從2開始 if current_value is None: current_value = value start_index = index elif value != current_value: # 如果值發(fā)生變化,且之前的值有多行 if index - start_index > 1: result[str(current_value)] = [start_index, index - 1] current_value = value start_index = index # 處理最后一組數(shù)據(jù) if len(column_a) - start_index + 1 > 1: result[str(current_value)] = [start_index, len(column_a) + 1] # 使用xlwings加載Excel文件 app = xw.App(visible=False) wb = app.books.open('運(yùn)單號提取結(jié)果.xlsx') ws = wb.sheets[0] # 合并單元格,并保留圖片 for value, range_list in result.items(): # 合并A列 ws.range(f'A{range_list[0]}:A{range_list[1]}').merge() # 合并C列 ws.range(f'C{range_list[0]}:C{range_list[1]}').merge() # 保存為新文件 wb.save('運(yùn)單號提取結(jié)果_合并后.xlsx') wb.close() app.quit() print("合并完成,已保存為新文件:運(yùn)單號提取結(jié)果_合并后.xlsx")
效果圖
到此這篇關(guān)于Python實(shí)現(xiàn)合并帶有嵌入圖片的單元格的文章就介紹到這了,更多相關(guān)Python合并單元格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中字符串類型json操作的注意事項(xiàng)
這篇文章主要給大家介紹了python中字符串類型json操作的一些注意事項(xiàng),文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05Pytorch如何打印與Keras的model.summary()類似的輸出(最新推薦)
這篇文章主要介紹了Pytorch如何打印與Keras的model.summary()類似的輸出,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07Python中一個(gè)for循環(huán)循環(huán)多個(gè)變量的示例
今天小編就為大家分享一篇Python中一個(gè)for循環(huán)循環(huán)多個(gè)變量的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07使用__init__.py將文件夾設(shè)置成Python模塊示例詳解
這篇文章主要為大家介紹了使用__init__.py將文件夾設(shè)置成Python模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Python必備基礎(chǔ)之閉包和裝飾器知識總結(jié)
都2021年了Python的閉包和裝飾器難道你還不會(huì)?今天就帶大家詳細(xì)總結(jié)一下Python閉包和裝飾器的相關(guān)知識,需要的朋友可以參考下2021-06-06python3調(diào)用百度翻譯API實(shí)現(xiàn)實(shí)時(shí)翻譯
這篇文章主要為大家詳細(xì)介紹了python3調(diào)用百度翻譯API,實(shí)現(xiàn)實(shí)時(shí)翻譯,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08Python大數(shù)據(jù)用Numpy Array的原因解讀
一個(gè)Numpy數(shù)組由許多值組成,所有值的類型是相同的,Numpy 是Python科學(xué)計(jì)算的一個(gè)核心模塊,本文重點(diǎn)給大家介紹Python大數(shù)據(jù)Numpy Array的相關(guān)知識,感興趣的朋友一起看看吧2022-02-02在 Jupyter 中重新導(dǎo)入特定的 Python 文件(場景分析)
Jupyter 是數(shù)據(jù)分析領(lǐng)域非常有名的開發(fā)環(huán)境,使用 Jupyter 寫數(shù)據(jù)分析相關(guān)的代碼會(huì)大大節(jié)約開發(fā)時(shí)間。這篇文章主要介紹了在 Jupyter 中如何重新導(dǎo)入特定的 Python 文件,需要的朋友可以參考下2019-10-10Pytorch基本變量類型FloatTensor與Variable用法
今天小編就為大家分享一篇Pytorch基本變量類型FloatTensor與Variable用法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01