国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

COM自動化使用電腦程序

這篇具有很好參考價值的文章主要介紹了COM自動化使用電腦程序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


前言

Python有許多本地創(chuàng)建通用Microsoft Office文件類型的選項,包括Excel、Word和PowerPoint。然而,在某些情況下,使用純python方法解決問題可能太困難了。幸運的是,python有一個名為pywin32的“python for Windows Extensions”包,它允許我們輕松地訪問Windows的組件對象模型(COM)并通過python控制微軟的應(yīng)用程序。本文將介紹這種類型的自動化的一些基本用例,以及如何使用一些有用的腳本啟動和運行。


一、COM是什么?

在微軟網(wǎng)站上,組件對象模型(COM)是:
一個***平臺獨立的、分布式的、面向?qū)ο?**的系統(tǒng),用于創(chuàng)建可以交互的二進制軟件組件。 COM是Microsoft的OLE(復(fù)合文檔)和ActiveX(支持internet的組件)技術(shù)的基礎(chǔ)技術(shù)。 COM對象可以用各種編程語言創(chuàng)建。
這項技術(shù)允許我們從另一個程序控制Windows應(yīng)用程序。 本博客的許多讀者可能都見過或使用過VBA來實現(xiàn)某種程度的Excel任務(wù)自動化。 COM是支持VBA的基礎(chǔ)技術(shù)。
pywin32
pywin32包已經(jīng)存在很長時間了。事實上,關(guān)于這個話題的書是由馬克·哈蒙德和安迪·羅賓遜在2000年出版的。Pywin32基本上是python的一個非常薄的包裝器,它允許我們與COM對象交互,并使用python自動化Windows應(yīng)用程序。這種方法的強大之處在于,你幾乎可以做任何微軟應(yīng)用程序通過python可以做的事情。缺點是你必須在Windows系統(tǒng)上運行。

二、使用步驟

所有這些應(yīng)用程序都以類似的導(dǎo)入和流程啟動應(yīng)用程序。下面是一個打開Excel的簡短例子。

1.打開EXCEL

代碼如下(示例):

mport win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')

excel.Visible = True
_ = input("Press ENTER to quit:")

excel.Application.Quit()


從命令行運行該命令后,應(yīng)該會看到Excel打開。 當(dāng)您按下ENTER時,應(yīng)用程序?qū)㈥P(guān)閉。 在我們真正使它成為一個更有用的應(yīng)用程序之前,有幾個關(guān)鍵的概念需要了解。

第一步是導(dǎo)入win32客戶端。 我使用了將其作為win32導(dǎo)入的約定,以使實際的分派代碼更短一些。

這段代碼的神奇之處在于使用EnsureDispatch啟動Excel。 在本例中,我使用gencache。 確保調(diào)度創(chuàng)建一個靜態(tài)代理。 如果您想了解更多關(guān)于靜態(tài)代理和動態(tài)代理的細節(jié),我建議您閱讀這篇文章。 對于本文所包含的示例類型,我很幸運地使用了這種方法,但是說實話——我還沒有廣泛地試驗過各種分派方法。

現(xiàn)在,excel對象已經(jīng)啟動,我們需要通過設(shè)置excel顯式地使其可見。 可見= True

win32代碼是相當(dāng)聰明的,并將關(guān)閉excel一旦程序完成運行。 這意味著,如果我們讓代碼自己運行,您可能不會看到Excel。 我包含了虛擬提示,以便在用戶按下ENTER之前,Excel在屏幕上保持可見。

我包括了excel.Application.Quit()的最后一行,就像一條腰帶和吊帶一樣。 嚴(yán)格地說,win32應(yīng)該在程序完成時關(guān)閉Excel,但我決定包括Excel . application . quit()來演示如何強制關(guān)閉應(yīng)用程序。

這是使用COM的最基本的方法。 我們可以用許多更有用的方式來擴展它。 本文的其余部分將介紹一些可能對您自己的需求有用的示例。

2.在Excel中打開文件

在我的日常工作中,我經(jīng)常使用熊貓來分析和處理數(shù)據(jù),然后將結(jié)果輸出到Excel中。該過程的下一步是打開Excel并查看結(jié)果。在本例中,我們可以自動化文件打開過程,這比試圖導(dǎo)航到正確的目錄并打開文件更簡單。
下面是完整的例子

import win32com.client as win32
import pandas as pd
from pathlib import Path

# Read in the remote data file
df = pd.read_csv("https://github.com/chris1610/pbpython/blob/master/data/sample-sales-tax.csv?raw=True")

# Define the full path for the output file
out_file = Path.cwd() / "tax_summary.xlsx"

# Do some summary calcs
# In the real world, this would likely be much more involved
df_summary = df.groupby('category')['ext price', 'Tax amount'].sum()

# Save the file as Excel
df_summary.to_excel(out_file)

# Open up Excel and make it visible
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = True

# Open up the file
excel.Workbooks.Open(out_file)

# Wait before closing it
_ = input("Press enter to close Excel")
excel.Application.Quit()

COM自動化使用電腦程序

這個簡單的示例擴展了前面的示例,展示了如何使用Workbooks對象打開文件。

將Excel文件附加到Outlook中
COM有幫助的另一個簡單場景是,當(dāng)您想要將文件附加到電子郵件并發(fā)送到分發(fā)列表時。 這個例子展示了如何做一些數(shù)據(jù)操作,打開Outlook電子郵件,附加一個文件,并在發(fā)送之前讓它打開以接收其他文本。

import win32com.client as win32
import pandas as pd
from pathlib import Path
from datetime import date


to_email = """
Lincoln, Abraham <honest_abe@example.com>; chris@example.com
"""

cc_email = """
Franklin, Benjamin <benny@example.com>
"""

# Read in the remote data file
df = pd.read_csv("https://github.com/chris1610/pbpython/blob/master/data/sample-sales-tax.csv?raw=True")

# Define the full path for the output file
out_file = Path.cwd() / "tax_summary.xlsx"

# Do some summary calcs
# In the real world, this would likely be much more involved
df_summary = df.groupby('category')['ext price', 'Tax amount'].sum()

# Save the file as Excel
df_summary.to_excel(out_file)

# Open up an outlook email
outlook = win32.gencache.EnsureDispatch('Outlook.Application')
new_mail = outlook.CreateItem(0)

# Label the subject
new_mail.Subject = "{:%m/%d} Report Update".format(date.today())

# Add the to and cc list
new_mail.To = to_email
new_mail.CC = cc_email

# Attach the file
attachment1 = out_file

# The file needs to be a string not a path object
new_mail.Attachments.Add(Source=str(attachment1))

# Display the email
new_mail.Display(True)

這個例子稍微復(fù)雜一些,但是基本概念是相同的。我們需要創(chuàng)建對象(本例中為Outlook)并創(chuàng)建一個新的電子郵件。使用COM的一個挑戰(zhàn)性方面是沒有一個非常一致的API。創(chuàng)建一個像這樣的電子郵件并不直觀:new_mail = outlook.CreateItem(0)它通常需要一些搜索來找出特定問題的確切API。谷歌和stackoverflow是你的朋友。
創(chuàng)建電子郵件對象后,您可以添加收件人和抄送列表,以及附加文件。當(dāng)一切都說完了,一切都完成了,它看起來是這樣的:
COM自動化使用電腦程序


總結(jié)

傾向于在我的日常數(shù)據(jù)分析中盡可能地堅持使用python。然而,重要的是要知道其他技術(shù)何時可以簡化過程或使結(jié)果產(chǎn)生更大的影響。微軟的COM技術(shù)是一項成熟的技術(shù),可以通過python有效地使用它來完成那些很難用其他方法完成的任務(wù)。希望這篇文章已經(jīng)為您提供了一些關(guān)于如何將這種技術(shù)合并到您自己的工作流程中的想法。如果您有任何需要使用pywin32的任務(wù),請在評論中告訴我們。文章來源地址http://www.zghlxwxcb.cn/news/detail-466983.html

到了這里,關(guān)于COM自動化使用電腦程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 一篇文章帶你入門Appium自動化測試

    一篇文章帶你入門Appium自動化測試

    appium是一款移動自動化測試工具,經(jīng)常被用于實現(xiàn)UI自動化測試,其可支持安卓和IOS兩大平臺,還支持多種編程,因而得到了廣泛的應(yīng)用。此處便是立足于安卓平臺,借助appium工具,使用python語言實現(xiàn)簡單的自動化測試。 Native App:原生應(yīng)用(特定移動設(shè)備或平臺開發(fā)的應(yīng)用程

    2024年02月05日
    瀏覽(21)
  • DevOps系列文章之 GitlabCICD自動化部署SpringBoot項目

    DevOps系列文章之 GitlabCICD自動化部署SpringBoot項目

    本文主要記錄如何通過Gitlab CI/CD自動部署SpringBoot項目jar包。 準(zhǔn)備三臺 CentOS7服務(wù)器,分別部署以下服務(wù): 序號 系統(tǒng) IP 服務(wù) 1 CentOS7 192.168.56.10 Gitlab 2 CentOS7 192.168.56.11 Runner (安裝Docker) 3 CentOS7 192.168.56.12 SpringBoot 項目 jar 包(安裝jdk、maven等) 上述服務(wù)也可以只用一臺CentOS

    2024年02月13日
    瀏覽(12)
  • 使用JFLASH實現(xiàn)文件程序自動化合并及下載功能

    使用JFLASH實現(xiàn)文件程序自動化合并及下載功能

    主要總結(jié)下使用 SEGGER 工具集的 JFLASH 軟件實現(xiàn) hex/bin 文件合并以及程序的自動下載使用方法。 起因是最近使用到LVGL字庫文件的制作,每次都要將分散的bin文件按既定分配的偏移作合并處理,剛開始使用的是二進制文件合并工具,文件少的時候還行,但是文件一多,一個個的添

    2024年01月21日
    瀏覽(30)
  • DevOps系列文章之 自動化測試大全(單測和集成測試)

    DevOps系列文章之 自動化測試大全(單測和集成測試)

    核心目標(biāo): 主要是功能測試和覆蓋率測試 業(yè)界常用主流工具 GoogleTest GoogleTest是一個跨平臺的(Liunx、Mac OS X、Windows 、Cygwin 、Windows CE and Symbian ) C++單元測試框架,由google公司發(fā)布,為在不同平臺上為編寫C++測試而開發(fā)的。它提供了豐富的斷言、致命和非致命判斷、參數(shù)化、”

    2024年02月14日
    瀏覽(16)
  • 使用 appium 進行微信小程序的自動化測試

    目錄 前言: 微信小程序結(jié)構(gòu) 自動化用例的調(diào)整 示例代碼 后記 微信小程序是一種流行的移動應(yīng)用程序,它在移動設(shè)備上提供了豐富的功能和用戶體驗。為了確保微信小程序的質(zhì)量和穩(wěn)定性,自動化測試是必不可少的一環(huán)。Appium是一個強大的自動化測試工具,可以用于測試微

    2024年02月17日
    瀏覽(22)
  • K8S系列文章之 離線安裝自動化工具Ansible

    K8S系列文章之 離線安裝自動化工具Ansible

    參考 文檔?離線安裝 Ansible - DevOps - dbaselife 一、Ansible簡介 Ansible是一款開源的IT配置管理工具,常被IT界的小伙伴們用于自動化的場景,多用在服務(wù)部署、配置管理方面。配置文件采用最常見的yaml格式,學(xué)習(xí)起來也是比較容易,Ansible并不需要也沒有agent,只有一個控制端。該

    2024年02月14日
    瀏覽(26)
  • K8S系列文章之 自動化運維利器 Ansible

    K8S系列文章之 自動化運維利器 Ansible

    第一步:安裝我們的epel擴展源 我這里會報/var/run/yum.pid 已被鎖定,如果沒有直接進行下一步 解決方法:刪除/var/run/yum.pid,即 rm -rf?/var/run/yum.pid ,重新執(zhí)行第一步 第二步:安裝 ansible 如果還報/var/run/yum.pid 已被鎖定,還是直接進行刪除,然后重新執(zhí)行?yum -y install ansible 第三

    2024年02月13日
    瀏覽(22)
  • K8S系列文章之 自動化運維利器 Fabric

    K8S系列文章之 自動化運維利器 Fabric

    Fabric 主要用在應(yīng)用部署與系統(tǒng)管理等任務(wù)的自動化,簡單輕量級,提供有豐富的 SSH 擴展接口。在 Fabric 1.x 版本中,它混雜了本地及遠程兩類功能;但自 Fabric 2.x 版本起,它分離出了獨立的 Invoke 庫,來處理本地的自動化任務(wù),而 Fabric 則聚焦于遠程與網(wǎng)絡(luò)層面的任務(wù)。 為了

    2024年02月14日
    瀏覽(39)
  • 【Jlink燒錄自動化】一臺電腦連接 多個Jlink 用 J-flash批處理程序燒寫多個單片機(生產(chǎn)批量燒錄)

    【Jlink燒錄自動化】一臺電腦連接 多個Jlink 用 J-flash批處理程序燒寫多個單片機(生產(chǎn)批量燒錄)

    最近一些設(shè)備需要進行預(yù)生產(chǎn)(小批量生產(chǎn)),雖然是小批量但是數(shù)量也是很多,單靠人力燒錄設(shè)備比較耗費時間 因此需要做一個燒錄治具批量燒錄。 軟件 由于設(shè)備的MCU是arm cortex M4內(nèi)核,使用的是Jlink燒錄因此要安裝 Segger Jlink 安裝之后開J-flash 物料準(zhǔn)備 由于要一次燒錄多

    2024年01月17日
    瀏覽(43)
  • Appium+python自動化(二十六)- Toast提示(超詳解)簡介

    Appium+python自動化(二十六)- Toast提示(超詳解)簡介

    開始今天的主題 - 獲取toast提示 在日常使用App過程中,經(jīng)常會看到App界面有一些彈窗提示(如下圖所示)這些提示元素出現(xiàn)后等待3秒左右就會自動消失,這個和我日常生活中看到的煙花和曇花是多么的相似,那么我們該如何獲取這些元素文字內(nèi)容呢? Android中的Toast是一種簡

    2024年02月15日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包