小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

實(shí)例11:用Python給Excel所有工作表添加圖片

 Four兄 2019-08-25

我們在實(shí)例9里面展示了如何批量填寫每日出貨清單,每一天的清單都是直接復(fù)制“出貨單模板”,然后在其中填入出貨產(chǎn)品信息的。openpyxl有一個(gè)問題,就是在復(fù)制工作表的時(shí)候,無法跟著復(fù)制圖片。而我們的公司名一般比較個(gè)性化,在Excel中用文字很難達(dá)到那個(gè)效果,比如如下:

此時(shí),我們就需要使用到openpyxl模塊的圖片插入功能。但這個(gè)功能有一個(gè)坑,我們下面來展開說明。
按照openpyxl的官方文檔,添加圖片只需如下幾步:

from openpyxl.drawing.image import Image #導(dǎo)入圖片添加模塊
from openpyxl import load_workbook #導(dǎo)入Excel工作表操作模塊
img = Image('images\company.png') #需添加的圖片所在路徑
wb=load_workbook('data\出貨單.xlsx') #打開工作簿
ws=wb[sheet_name] #獲取工作表
ws.add_image(img,'A1') #添加圖片到指定的單元格
wb.save('data\出貨單_new.xlsx') #保存文件

下面我們就按照以上說明來操作,看看效果怎么樣。

from openpyxl.drawing.image import Image
from openpyxl import load_workbook
img = Image('images\company.png') #需添加的圖片所在路徑
wb = load_workbook('data\出貨單.xlsx') #打開工作簿
sheet_names=wb.get_sheet_names() #獲得工作簿的所有工作表名
for sheet_name in sheet_names: #遍歷每個(gè)工作表,并在每個(gè)工作表的A1單元格插入圖片
ws=wb[sheet_name]
ws.add_image(img, 'A1')#添加圖片到指定的A1單元格,圖片左上角將與A1單元格左上角對齊
wb.save('data\出貨單—new.xlsx')

我們通過遍歷“出貨單.xlsx”文件中的所有工作表,然后每個(gè)工作表都在A1單元格插入我們設(shè)定好的圖片,最后保存。待程序執(zhí)行完成,打開保存的文件“出貨單—new.xlsx”,報(bào)出如下錯誤:

我們選擇“是”,繼續(xù)下一步,再報(bào)出錯誤:

點(diǎn)擊“關(guān)閉”,繼續(xù)下一步。我們發(fā)現(xiàn)除了最后一個(gè)工作表“12-23”,其他工作表圖片全部無法正常顯示,都帶有一個(gè)紅色的“X”,顯示為“無法顯示該圖片”。

我花了很多時(shí)間來研究到底怎么回事,然后也做了很多測試。最后發(fā)現(xiàn),每插入一張圖片就需要保存一下,才可保證圖片正常顯示。因此將程序稍作修改如下。即每給一個(gè)工作表插入圖片后,都保存一次,而不是給所有工作表插完圖片后,最后才來保存。相當(dāng)于我們不停地打開“出貨單.xlsx”,然后在其中的各個(gè)工作表依次插入圖片,每操作一次,保存一次。時(shí)間會比只保存一次更長,但畢竟比手動插入圖片快很多了。最終,每張工作表都插入圖片成功,呲牙...

from openpyxl.drawing.image import Image
img = Image('images\company.png')
wb = load_workbook('data\出貨單.xlsx')
sheet_names=wb.get_sheet_names()
for sheet_name in sheet_names:
wb = load_workbook('data\出貨單.xlsx')
ws=wb[sheet_name]
ws.add_image(img, 'A1')
wb.save('data\出貨單.xlsx')

所有源代碼和說明都在Jupyter notebook上完成,所用到的Excel 資料已上傳GitHub, 歡迎Fork或下載到本地隨意玩。。。轉(zhuǎn)載請注明出處,謝謝。
GitHub鏈接:

https://github.com/weidylan/Office_Automation_by_Using_Python

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多