日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

瀏覽:200日期:2022-06-27 09:12:14

測試圖片

Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

一、相對路徑(報(bào)錯(cuò))

使用相對路徑插入會(huì)報(bào)錯(cuò)(確認(rèn)路徑正確無誤)

import xlwings as xwwb = xw.Book()sht = wb.sheets[’Sheet1’]sht.pictures.add(’1.jpg’) # 使用相對路徑會(huì)報(bào)錯(cuò)wb.save(’test.xlsx’)wb.close()

File '<COMObject <unknown>>', line 5, in AddPicturepywintypes.com_error: (-2147352567, ’發(fā)生意外?!? (0, None, ’未找到指定文件。’, None, 0, -2146827284), None)

二、絕對路徑

改為絕對路徑即可成功插入

import osimport xlwings as xwwb = xw.Book()sht = wb.sheets[’Sheet1’]# sht.pictures.add(’1.jpg’) # 使用相對路徑會(huì)報(bào)錯(cuò)sht.pictures.add(os.path.join(os.getcwd(), ’1.jpg’))wb.save(’test.xlsx’)wb.close()

Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

三、指定位置和大小

函數(shù)原型add(image, link_to_file=False, save_with_document=True, left=0, top=0, width=None, height=None, name=None, update=False)

import osimport xlwings as xwwb = xw.Book()sht = wb.sheets[’Sheet1’]fileName = os.path.join(os.getcwd(), ’1.jpg’)sht.pictures.add(fileName, left=sht.range(’B5’).left, top=sht.range(’B5’).top, width=100, height=100)wb.save(’test.xlsx’)wb.close()

指定圖片位置為B5單元格的左上角,圖片像素為100×100

Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

四、居中插入

新建Excel文件test.xlsx,設(shè)置列寬20行高100

Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

import osimport xlwings as xwwb = xw.Book(’test.xlsx’) # 打開已存在的Excel文件sht = wb.sheets[’Sheet1’]rng = sht.range(’B2’) # 目標(biāo)單元格fileName = os.path.join(os.getcwd(), ’1.jpg’)width, height = 80, 80 # 指定圖片大小left = rng.left + (rng.width - width) / 2 # 居中top = rng.top + (rng.height - height) / 2sht.pictures.add(fileName, left=left, top=top, width=width, height=height)wb.save()wb.close()

Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

智能居中插入

1.jpg

寬 × 高 = 188 × 282

Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

2.jpg

寬 × 高 = 200 × 153

Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

import osimport xlwings as xwfrom PIL import Imagedef add_center(sht, target, filePath, match=False, width=None, height=None, column_width=None, row_height=None): ’’’Excel智能居中插入圖片 優(yōu)先級:match > width & height > column_width & row_height 建議使用column_width或row_height,定義單元格最大寬或高 :param sht: 工作表 :param target: 目標(biāo)單元格,字符串,如’A1’ :param filePath: 圖片絕對路徑 :param width: 圖片寬度 :param height: 圖片高度 :param column_width: 單元格最大寬度,默認(rèn)100像素,0 <= column_width <= 1557.285 :param row_height: 單元格最大高度,默認(rèn)75像素,0 <= row_height <= 409.5 :param match: 絕對匹配原圖寬高,最大寬度1557.285,最大高度409.5 ’’’ unit_width = 6.107 # Excel默認(rèn)列寬與像素的比 rng = sht.range(target) # 目標(biāo)單元格 name = os.path.basename(filePath) # 文件名 _width, _height = Image.open(filePath).size # 原圖片寬高 NOT_SET = True # 未設(shè)置單元格寬高 # match if match: # 絕對匹配圖像 width, height = _width, _height else: # 不絕對匹配圖像 # width & height if width or height: if not height: # 指定了寬,等比計(jì)算高h(yuǎn)eight = width / _width * _height if not width: # 指定了高,等比計(jì)算寬width = height / _height * _width else: # column_width & row_height if column_width and row_height: # 同時(shí)指定單元格最大寬高width = row_height / _height * _width # 根據(jù)單元格最大高度假設(shè)寬height = column_width / _width * _height # 根據(jù)單元格最大寬度假設(shè)高area_width = column_width * height # 假設(shè)寬優(yōu)先的面積area_height = row_height * width # 假設(shè)高優(yōu)先的面積if area_width > area_height: width = column_widthelse: height = row_height elif not column_width and not row_height: # 均無指定單元格最大寬高column_width = 100row_height = 75rng.column_width = column_width / unit_width # 更新當(dāng)前寬度rng.row_height = row_height # 更新當(dāng)前高度NOT_SET = Falsewidth = row_height / _height * _width # 根據(jù)單元格最大高度假設(shè)寬height = column_width / _width * _height # 根據(jù)單元格最大寬度假設(shè)高area_width = column_width * height # 假設(shè)寬優(yōu)先的面積area_height = row_height * width # 假設(shè)高優(yōu)先的面積if area_width > area_height: height = row_heightelse: width = column_width else:width = row_height / _height * _width if row_height else column_width # 僅設(shè)了單元格最大寬度height = column_width / _width * _height if column_width else row_height # 僅設(shè)了單元格最大高度 assert 0 <= width / unit_width <= 255 assert 0 <= height <= 409.5 if NOT_SET: rng.column_width = width / unit_width # 更新當(dāng)前寬度 rng.row_height = height # 更新當(dāng)前高度 left = rng.left + (rng.width - width) / 2 # 居中 top = rng.top + (rng.height - height) / 2 try: sht.pictures.add(filePath, left=left, top=top, width=width, height=height, scale=None, name=name) except Exception: # 已有同名圖片,采用默認(rèn)命名 passif __name__ == ’__main__’: wb = xw.Book() sht = wb.sheets[’Sheet1’] filePath = os.path.join(os.getcwd(), ’1.jpg’) filePath2 = os.path.join(os.getcwd(), ’2.jpg’) add_center(sht, ’A1’, filePath) # 默認(rèn)值 add_center(sht, ’B2’, filePath2) # 默認(rèn)值 add_center(sht, ’C3’, filePath, match=True) # 絕對匹配圖片寬高 add_center(sht, ’D4’, filePath, width=100) # 圖片寬度為100像素 add_center(sht, ’E5’, filePath, height=100) # 圖片高度為100像素 add_center(sht, ’F6’, filePath, width=100, height=100) # 圖片高度為100像素 add_center(sht, ’G7’, filePath, column_width=100) # 單元格最大寬度為100像素 add_center(sht, ’H8’, filePath, row_height=100) # 單元格最大寬度為100像素 add_center(sht, ’I9’, filePath, column_width=100, row_height=100) # 單元格最大高度或?qū)挾葹?00像素

效果

Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

unit_width = 6.107 # Excel默認(rèn)列寬與像素的比

這個(gè)值估計(jì)與不同機(jī)器、分辨率有關(guān),在5.7-6.2之間

遇到的坑

報(bào)錯(cuò) pywintypes.com_error: (-2147352567, ’發(fā)生意外。’, (0, None, ’未找到指定文件?!? None, 0, -2146827284), None)對路徑使用os.path.abspath()

參考文獻(xiàn)

xlwings dev documentation

報(bào)錯(cuò)pywintypes.com_error: (-2147352567, ‘發(fā)生意外?!? (0, None, ‘未找到指定文件。‘, None, 0, -2146827284), None)

到此這篇關(guān)于Python xlwings插入Excel圖片的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Python xlwings插入圖片內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: python
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
福利一区视频| 婷婷亚洲成人| 日韩免费精品| 亚洲一二av| 亚洲精品日本| 日韩中文字幕在线一区| 日欧美一区二区| 国产精品亚洲欧美| 日本亚洲三级在线| 国产日本亚洲| 成人在线黄色| 91精品一区二区三区综合| 欧美日韩国产在线观看网站| 亚洲激精日韩激精欧美精品| 美女精品一区| 日韩精品亚洲专区在线观看| 日本综合精品一区| 国产精品www.| 久久精选视频| 美美哒免费高清在线观看视频一区二区| 亚洲香蕉视频| 国产亚洲欧美日韩精品一区二区三区 | 国产精品成人国产| 国产精品九九| 久久激情一区| 中文字幕av一区二区三区人 | 丝袜a∨在线一区二区三区不卡| 五月国产精品| 99国产精品免费视频观看| 中文视频一区| 欧美激情视频一区二区三区免费 | 午夜欧美视频| 国产精品hd| 国产高清一区二区| 国产精品一级在线观看| 欧美日韩国产高清电影| 久久99精品久久久野外观看| 好看的av在线不卡观看| 国产精品久久久亚洲一区| 久久不见久久见中文字幕免费| 欧美成人a交片免费看| av在线日韩| 亚洲专区视频| 国产专区精品| 99在线观看免费视频精品观看| 日韩中文字幕在线一区| 亚洲精品伊人| 伊人久久高清| 日韩精品成人在线观看| 精品视频久久| 午夜久久一区| 国产精品一区亚洲| 欧美精选视频一区二区| 蜜桃视频在线观看一区| 国产伦精品一区二区三区在线播放| 成人在线观看免费视频| 中文一区二区| 日韩av中文字幕一区| 欧美亚洲精品在线| 日本欧美一区| 亚洲不卡系列| 日韩不卡免费视频| 午夜精品成人av| 日韩精品一卡二卡三卡四卡无卡| 久久av超碰| 91久久黄色| 国产在线一区不卡| 蜜臀精品久久久久久蜜臀| 国产成人久久精品一区二区三区| 伊人精品在线| 国产精品美女在线观看直播| 91精品啪在线观看国产18| 亚洲欧美久久久| 日本不卡视频在线观看| 婷婷国产精品| 精品一区二区三区在线观看视频| 中文欧美日韩| 一本大道色婷婷在线| 日韩一区网站| 欧美aa国产视频| 欧美激情在线精品一区二区三区| 99在线|亚洲一区二区| 国产aa精品| 日本三级亚洲精品| 99riav国产精品| 麻豆精品在线视频| 亚洲精品观看| 成人美女视频| 精品精品国产三级a∨在线| 亚洲三级毛片| 亚洲少妇自拍| 久久久精品网| 日韩av专区| 911精品国产| 美女久久网站| 欧美网站在线| 日本欧美不卡| 欧美激情视频一区二区三区免费| 最新亚洲国产| 国产视频欧美| 激情国产在线| 私拍精品福利视频在线一区| 丁香婷婷久久| 国产在线日韩精品| 国产欧美激情| 亚洲人www| 国产精品婷婷| 99精品99| 伊人久久亚洲热| 欧美 日韩 国产精品免费观看| 黑森林国产精品av| 国产成人1区| 国产成人精品亚洲线观看| 精品欧美日韩精品| 精品国产乱码久久久| 亚洲精品乱码日韩| 香蕉视频成人在线观看| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲婷婷在线| 在线国产一区| 在线一区视频| 亚洲女人av| 亚洲另类av| 日韩欧美2区| 国产日韩高清一区二区三区在线| 91精品国产自产观看在线| 日韩av中文在线观看| 精品国产一区二| 红杏一区二区三区| 91视频久久| 精品国产午夜| 在线人成日本视频| 日韩在线欧美| 久久精品av| 国产麻豆综合| 日本高清久久| 国产精品一级在线观看| 久久精品九色| 精品免费av在线| 久久精品国产99久久| 亚洲综合中文| 国产精品对白久久久久粗| 国际精品欧美精品| 成人免费网站www网站高清| 亚洲性视频h| 激情五月综合网| 亚洲男人在线| 久久99视频| 91精品国产乱码久久久久久久| 亚洲特级毛片| 日韩黄色免费网站| 日本激情一区| 亚洲精品一区二区妖精| 中文字幕日韩欧美精品高清在线| 欧美午夜三级| 成人在线视频免费看| 天堂日韩电影| 中文字幕亚洲影视| 日本天堂一区| 久久久久一区| 欧美日韩国产欧| 欧美精品国产白浆久久久久| 国产在线看片免费视频在线观看| 一区二区亚洲精品| 国产日韩欧美一区在线| 人人精品亚洲| 日本在线一区二区三区| 日韩av有码| 人人精品人人爱| 国产精品蜜月aⅴ在线| 久久五月天小说| 久久女人天堂| 久热精品在线| 精品午夜视频| 国产农村妇女精品一二区| 亚洲精品一级二级三级| 天堂av在线| 日韩中文字幕| 91精品国产自产在线观看永久∴| 天堂久久av| 婷婷六月综合| 奇米狠狠一区二区三区| 日韩一区二区三区免费播放| 亚洲精品三级| 久久精品青草| 国产精品成人一区二区网站软件| 好吊一区二区三区| 福利精品一区| 国产亚洲观看| 精品91久久久久| 精品一区二区三区中文字幕在线| 日韩精品一卡二卡三卡四卡无卡| 9色精品在线| 国内自拍视频一区二区三区| 亚洲精品字幕| 香蕉久久99| 成人午夜网址| 亚洲欧美久久精品| 蜜桃视频欧美| 国产一区二区三区久久|