Python實(shí)現(xiàn)合并帶有嵌入圖片的單元格
1、庫(kù)的安裝
| 庫(kù) | 用途 | 安裝 |
|---|---|---|
| xlwings | 控制打開Excel的軟件 | pip install xlwings -i https://pypi.tuna.tsinghua.edu.cn/simple/ |
| os | 獲取絕對(duì)路徑 | 內(nèi)置庫(kù)無需安裝 |
2、核心代碼
①:計(jì)算唯一項(xiàng)所占單元格函數(shù)
# 讀取Excel文件
df = pd.read_excel('運(yùn)單號(hào)提取結(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)單號(hào)提取結(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)單號(hào)提取結(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)單號(hào)提取結(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)單號(hào)提取結(jié)果_合并后.xlsx')
wb.close()
app.quit()
print("合并完成,已保存為新文件:運(yùn)單號(hào)提取結(jié)果_合并后.xlsx")
效果圖

到此這篇關(guān)于Python實(shí)現(xiàn)合并帶有嵌入圖片的單元格的文章就介紹到這了,更多相關(guān)Python合并單元格內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中字符串類型json操作的注意事項(xiàng)
這篇文章主要給大家介紹了python中字符串類型json操作的一些注意事項(xiàng),文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05
Pytorch如何打印與Keras的model.summary()類似的輸出(最新推薦)
這篇文章主要介紹了Pytorch如何打印與Keras的model.summary()類似的輸出,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Python中一個(gè)for循環(huán)循環(huán)多個(gè)變量的示例
今天小編就為大家分享一篇Python中一個(gè)for循環(huán)循環(huán)多個(gè)變量的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
使用__init__.py將文件夾設(shè)置成Python模塊示例詳解
這篇文章主要為大家介紹了使用__init__.py將文件夾設(shè)置成Python模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Python必備基礎(chǔ)之閉包和裝飾器知識(shí)總結(jié)
都2021年了Python的閉包和裝飾器難道你還不會(huì)?今天就帶大家詳細(xì)總結(jié)一下Python閉包和裝飾器的相關(guān)知識(shí),需要的朋友可以參考下2021-06-06
python3調(diào)用百度翻譯API實(shí)現(xiàn)實(shí)時(shí)翻譯
這篇文章主要為大家詳細(xì)介紹了python3調(diào)用百度翻譯API,實(shí)現(xiàn)實(shí)時(shí)翻譯,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
Python大數(shù)據(jù)用Numpy Array的原因解讀
一個(gè)Numpy數(shù)組由許多值組成,所有值的類型是相同的,Numpy 是Python科學(xué)計(jì)算的一個(gè)核心模塊,本文重點(diǎn)給大家介紹Python大數(shù)據(jù)Numpy Array的相關(guān)知識(shí),感興趣的朋友一起看看吧2022-02-02
在 Jupyter 中重新導(dǎo)入特定的 Python 文件(場(chǎng)景分析)
Jupyter 是數(shù)據(jù)分析領(lǐng)域非常有名的開發(fā)環(huán)境,使用 Jupyter 寫數(shù)據(jù)分析相關(guān)的代碼會(huì)大大節(jié)約開發(fā)時(shí)間。這篇文章主要介紹了在 Jupyter 中如何重新導(dǎo)入特定的 Python 文件,需要的朋友可以參考下2019-10-10
Pytorch基本變量類型FloatTensor與Variable用法
今天小編就為大家分享一篇Pytorch基本變量類型FloatTensor與Variable用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01

