wps的excel单元格填充图片偏移问题代码报错
回答
收藏

wps的excel单元格填充图片偏移问题代码报错

s
sen2022
2023-11-01 08:45·浏览量:1658
s
sen2022
发布于 2023-11-01 08:451658浏览

解决wps的excel单元格填充图片操作过多导致偏移问题——by.深圳业务组

https://www.yingdao.com/community/detaildiscuss?id=74ea5df1-c9e0-4670-ba6f-066c84e19e04&tag=&from=userCenter&sort=createTime&page=1

用上面连接的代码提示报错


# 使用提醒:

# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能

# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能

# 3. 当此模块作为流程独立运行时执行main函数

# 4. 可视化流程中可以通过"调用模块"的指令使用此模块

import xbot

from xbot import print, sleep

from .import package

from .package import variables as glv

import win32clipboard as w

import win32con

class Clipboard:

   @staticmethod

   def getText():

       w.OpenClipboard()

       d = w.GetClipboardData(win32con.CF_UNICODETEXT)

       w.CloseClipboard()

       return d

   @staticmethod

   def setText(aString):

       w.OpenClipboard()

       w.EmptyClipboard()

       w.SetClipboardData(win32con.CF_UNICODETEXT, aString)

       w.CloseClipboard()

def add_picture(excel_instance, row_num, column_name, image_path, img_width, img_height,height,width,offset):

   """

   Ecxcl 通过公式插入图片

   :param excel_instance: excel_instance, excel对象

   :param row_num: int, 行号

   :param column_name: str, 列名

   :paramimage_path: str, 图片的路径

   :param img_width: int 图片的宽度

   :param img_height: int 图片的高度

   :param height: int 行高

   :param width: int 列宽

   :param offset: str 向右偏移量,解决左边框遮住问题

   注: 没有实现自动适配行号, 列宽的功能

   """

   print (row_num, column_name)

   sht = excel_instance.workbook.ActiveSheet

   range_selection = sht.Range(f"{column_name}{row_num}")

   # 设置行高

   range_selection.RowHeight = height

   # 设置列宽

   range_selection.ColumnWidth = width

   range_selection.Borders.LineStyle = 1

   sht.Range(f"{column_name}{row_num}").Select()

   content = f'<table style="border-collapse: collapse;"><td style="padding: 5px;"><img src="{image_path}"width="{img_width}"height="{img_height}"></td></table>'

   Clipboard.setText(content)

   res = sht.PasteSpecial(Format="Unicode 文本")

   # 获取当前单元格的图片对象

   cell = sht.Range(f"{column_name}{row_num}")

   # 定义偏移量

   offset = offset  # 偏移的像素值

   # 遍历每个图片对象并向右偏移

   for shape in sht.Shapes:

       if shape.Type == 13:  # 13 表示图片类型

           shape.Left += offset

def main(args):

   pass

收藏
全部回答1
最新
发布回答
回答