枫叶棋语 发表于 2022-4-12 09:26:33

PYCAD复制excel内容进行查找文本

本帖最后由 枫叶棋语 于 2022-5-10 16:59 编辑

# -*- coding: utf-8 -*

import re
import clr
from pycad.runtime import *
from pycad.system import *
clr.AddReference('System.Windows.Forms')
from System.Windows.Forms import Clipboard


fd_str = ""
@command()
def fd(doc):
    with dbtrans(doc) as tr:
      global fd_str
      res =edx.getstr("请输入查找文字 ")
      if not res.ok: return
      str0=res.value
      if str0 == "":
            str0=fd_str
      pa= "^\s*|\s*$"
      str0=re.sub(pa, "", str0, count=0, flags=0)
      print(str0)
      fd_str = str0
      ss_list=[]
      ss = edx.ssget_x((0, '*text'))
      if ss.ok():
            for ssi in ss:
                txt=tr.getobject(ssi.ObjectId)
                with upopen(txt):
                  if isinstance(txt, acdb.DBText):
                        str1 = txt.TextString
                  elif isinstance(txt, acdb.MText):
                        str1 = txt.Text
                if not re.match(str0 , str1, re.I) is None:
                   ss_list.append(ssi.ObjectId)
      edx.sssetfirst(tuple(ss_list))
      
@command()
def ff(doc):
    with dbtrans(doc) as tr:
      str0 = Clipboard.GetText()
      if not str0:
            print("剪贴板为空")
      else:
            Clipboard.Clear()
            ss = edx.ssget_x((0, '*text'))
            pa= "^\s*|\s*$"
            str0=re.sub(pa, "", str0, count=0, flags=0)
            print(str0)
            Clipboard.SetText(str0)
            ss_list=[]
            if ss.ok():
                for ssi in ss:
                  txt=tr.getobject(ssi.ObjectId)
                  with upopen(txt):
                        if isinstance(txt, acdb.DBText):
                            str1 = txt.TextString
                        elif isinstance(txt, acdb.MText):
                            str1 = txt.Text
                  if not re.match(str0 , str1,re.IGNORECASE) is None:
                        ss_list.append(ssi.ObjectId)
            edx.sssetfirst(tuple(ss_list))




页: [1]
查看完整版本: PYCAD复制excel内容进行查找文本