欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁(yè) > 知識(shí)庫(kù) > Python xlwings插入Excel圖片的實(shí)現(xiàn)方法

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

熱門標(biāo)簽:正安縣地圖標(biāo)注app 舉辦過(guò)冬奧會(huì)的城市地圖標(biāo)注 400電話申請(qǐng)資格 地圖地圖標(biāo)注有嘆號(hào) 螳螂科技外呼系統(tǒng)怎么用 qt百度地圖標(biāo)注 遼寧智能外呼系統(tǒng)需要多少錢 阿里電話機(jī)器人對(duì)話 電銷機(jī)器人系統(tǒng)廠家鄭州

測(cè)試圖片

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

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

import xlwings as xw

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

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

二、絕對(duì)路徑

改為絕對(duì)路徑即可成功插入

import os
import xlwings as xw

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

三、指定位置和大小

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

import os
import xlwings as xw

wb = 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

四、居中插入

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

import os
import xlwings as xw

wb = xw.Book('test.xlsx') # 打開(kāi)已存在的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) / 2
sht.pictures.add(fileName, left=left, top=top, width=width, height=height)
wb.save()
wb.close()

智能居中插入

1.jpg

寬 × 高 = 188 × 282


2.jpg

寬 × 高 = 200 × 153

import os
import xlwings as xw
from PIL import Image


def add_center(sht, target, filePath, match=False, width=None, height=None, column_width=None, row_height=None):
  '''Excel智能居中插入圖片

  優(yōu)先級(jí):match > width  height > column_width  row_height
  建議使用column_width或row_height,定義單元格最大寬或高

  :param sht: 工作表
  :param target: 目標(biāo)單元格,字符串,如'A1'
  :param filePath: 圖片絕對(duì)路徑
  :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: 絕對(duì)匹配原圖寬高,最大寬度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: # 絕對(duì)匹配圖像
    width, height = _width, _height
  else: # 不絕對(duì)匹配圖像
    # width  height
    if width or height:
      if not height: # 指定了寬,等比計(jì)算高
        height = 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_width
        else:
          height = row_height
      elif not column_width and not row_height: # 均無(wú)指定單元格最大寬高
        column_width = 100
        row_height = 75
        rng.column_width = column_width / unit_width # 更新當(dāng)前寬度
        rng.row_height = row_height # 更新當(dāng)前高度
        NOT_SET = False
        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:
          height = row_height
        else:
          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)命名
    pass


if __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) # 絕對(duì)匹配圖片寬高
  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像素

效果

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)
對(duì)路徑使用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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python 插入Null值數(shù)據(jù)到Postgresql的操作
  • python 在mysql中插入null空值的操作
  • python中的插入排序的簡(jiǎn)單用法
  • python 使用xlsxwriter循環(huán)向excel中插入數(shù)據(jù)和圖片的操作
  • python簡(jiǎn)單實(shí)現(xiàn)插入排序?qū)嵗a
  • Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法
  • Python操作word文檔插入圖片和表格的實(shí)例演示
  • 詳解python tkinter 圖片插入問(wèn)題
  • Python 如何在字符串中插入變量
  • 如何用python插入獨(dú)創(chuàng)性聲明

標(biāo)簽:濟(jì)源 信陽(yáng) 阜新 合肥 隨州 昭通 淘寶好評(píng)回訪 興安盟

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python xlwings插入Excel圖片的實(shí)現(xiàn)方法》,本文關(guān)鍵詞  Python,xlwings,插入,Excel,圖片,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python xlwings插入Excel圖片的實(shí)現(xiàn)方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python xlwings插入Excel圖片的實(shí)現(xiàn)方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    久久99精品一区二区三区| 国产精品情趣视频| 欧美午夜电影在线播放| 欧美亚洲综合久久| 色婷婷久久综合| 色噜噜狠狠成人网p站| 欧美日韩中文字幕一区| 91精品国产综合久久久久久久 | 欧美色图片你懂的| 国产精品九色蝌蚪自拍| 国产成人亚洲综合a∨猫咪| 国产精品suv一区二区88| 26uuu亚洲| 韩日av一区二区| 国产白丝一区二区三区| 中文字幕第一区二区| 成人综合日日夜夜| 91成人在线观看喷潮| 亚洲电影一级黄| 亚州av综合色区无码一区| 欧美一级高清大全免费观看| 秋霞电影一区二区| 国产99在线 | 亚洲| 欧美国产一区视频在线观看| 粉嫩一区二区三区在线看| 一本大道av一区二区在线播放| 亚洲欧美电影一区二区| 无码人妻一区二区三区精品视频| 91精品在线免费观看| 蜜臀av一级做a爰片久久| 丁香激情五月少妇| 国产精品久久久久婷婷| 91蜜桃网址入口| 在线观看91av| 紧缚捆绑精品一区二区| 无码黑人精品一区二区| 一二三四区精品视频| 99re久久精品国产| 国产婷婷色一区二区三区在线| 精品国产一区二区三区不卡 | 久久精品久久综合| 日本视频在线免费| 亚洲精品国产品国语在线app| 亚洲av永久无码精品| 少妇aaaaa| 中文字幕免费不卡| 国产成人av影院| 又色又爽的视频| 日韩一区二区精品| 日韩国产欧美在线播放| 91免费在线视频观看| 182在线观看视频| 国产日韩精品久久久| 美日韩黄色大片| 久久久久久久久久久久久久久| 麻豆久久一区二区| 91av在线免费| 国产精品免费视频网站| 中文字幕人妻一区| 欧美韩日一区二区三区四区| 一区二区三区四区影院| 国产无人区一区二区三区| 先锋资源在线视频| 久久一区二区三区四区| 最好看的中文字幕| 久久精品人人做人人爽97| 91视频在线看| 久久综合成人精品亚洲另类欧美| 99v久久综合狠狠综合久久| 精品久久国产字幕高潮| 91麻豆福利精品推荐| 久久久久97国产精华液好用吗| 91蜜桃在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 性活交片大全免费看| 国产精品丝袜黑色高跟| 一二三不卡视频| 亚洲激情成人在线| 老司机深夜福利网站| 日韩经典一区二区| 在线免费观看日本一区| 国产乱人伦偷精品视频免下载| 欧美日韩国产经典色站一区二区三区| 国产成人精品一区二| 91欧美一区二区| 久久久久国产精品厨房| 中出视频在线观看| 一区二区三区四区精品在线视频| 日韩精品久久久久久久的张开腿让| 亚洲成人激情自拍| 色综合色狠狠综合色| 激情图区综合网| 欧美一区二区三区在线| 91麻豆免费在线观看| 国产精品视频免费看| 一区二区伦理片| 天堂蜜桃91精品| 欧美午夜片在线观看| eeuss鲁一区二区三区| 麻豆国产欧美一区二区三区| 人妻久久一区二区| xfplay5566色资源网站| 日本一区二区三区久久久久久久久不| 任你躁av一区二区三区| 国产精品电影一区二区| 黄色aaa视频| 午夜精品久久一牛影视| 色哟哟国产精品免费观看| 国产一区久久久| 欧美一级黄色录像| 深夜视频在线观看| 国产精品18久久久久久久久 | 久久99国产精品免费| 欧美一区二区三区公司| 久久精品无码专区| 一级精品视频在线观看宜春院 | 日韩高清dvd碟片| 国内精品久久久久影院薰衣草| 欧美xxxxxxxxx| 在线观看国产网站| 日本少妇一区二区| 日韩欧美三级在线| free性中国hd国语露脸| 日韩高清一区在线| 欧美一级免费观看| 亚洲激情视频小说| 精品一区二区三区免费| 2023国产精品视频| 我想看黄色大片| 国产九色精品成人porny | 黑人巨大精品欧美| 三级成人在线视频| 日韩欧美国产系列| 亚洲午夜福利在线观看| 老司机免费视频一区二区三区| 精品久久久久久久久久久久包黑料| 天天躁日日躁aaaxxⅹ| 精品一区二区三区在线播放| 久久久久久99精品| 久久av红桃一区二区禁漫| 国产69精品一区二区亚洲孕妇| 国产精品国产三级国产普通话99 | 久久久久久久人妻无码中文字幕爆| 亚洲影院理伦片| 欧美日韩国产综合一区二区三区| 少妇被狂c下部羞羞漫画| 热久久国产精品| 26uuu精品一区二区| 亚洲少妇xxx| 91原创在线视频| 一级日本不卡的影视| 中文字幕一区二区三区不卡| 欧美伊人久久大香线蕉综合69 | 天天操天天色综合| 日韩视频免费观看高清完整版在线观看| 欧产日产国产精品98| 国产一区二区三区不卡在线观看| 中文字幕亚洲成人| 91麻豆精品国产无毒不卡在线观看| 一级黄色性视频| 日本猛少妇色xxxxx免费网站| 国产suv一区二区三区88区| 久久精品一区八戒影视| 日韩欧美国产成人精品免费| 不卡电影一区二区三区| 一区二区视频在线| 91精品国产综合久久久久久久| 欧美特黄一区二区三区| 国产自产视频一区二区三区| 国产精品免费视频网站| 欧美日韩亚洲综合| 国产中年熟女高潮大集合| 岛国av在线一区| 午夜伦理一区二区| 久久精品夜色噜噜亚洲a∨| 粉嫩av性色av蜜臀av网站| 女女调教被c哭捆绑喷水百合| 日本欧美大码aⅴ在线播放| 亚洲国产电影在线观看| 欧美日韩国产一区| 国产在线免费av| 苍井空张开腿实干12次| 精品一区二区三区在线观看国产| 亚洲国产精品激情在线观看| 欧美色综合久久| 国产黄色大片免费看| 四虎国产精品永久免费观看视频| 日韩国产欧美三级| 综合激情网...| 日韩欧美一级精品久久| 青草影院在线观看| 国产精品无码专区| 99久久免费精品高清特色大片| 日本麻豆一区二区三区视频| 国产精品久久久久永久免费观看 | 成人小视频免费看| 欧美69精品久久久久久不卡 | 麻豆freexxxx性91精品| 日韩毛片高清在线播放| 精品国产乱码久久久久久浪潮|