• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Python的辦公自動化應(yīng)用

      2024-01-03 08:42:12周洪斌苗盼盼
      現(xiàn)代計算機 2023年21期
      關(guān)鍵詞:辦公自動化通知書郵件

      周洪斌,苗盼盼

      (沙洲職業(yè)工學(xué)院數(shù)字化與微電子學(xué)院,張家港 215600)

      0 引言

      Python 程序設(shè)計語言具備語法簡潔、靈活高效、類庫豐富等優(yōu)點,在網(wǎng)絡(luò)爬蟲[1]、數(shù)據(jù)分析、人工智能、辦公自動化、Web 自動化測試[2]等方面得到了廣泛運用。辦公自動化是眾多企事業(yè)單位每天面臨的重要工作,當(dāng)面臨多個文檔、電子表格需要處理時,采用傳統(tǒng)的單個文檔一一處理的方式不僅枯燥乏味、耗時費力,而且容易出錯,采用Python 實現(xiàn)辦公自動化,實現(xiàn)文檔、電子表格的批量處理,可以有效提高辦公效率。Python 語言提供了豐富的類庫支持Word 文檔、Excel 表格的自動化處理[3]以及電子郵件的自動收發(fā)。

      1 Python辦公自動化基礎(chǔ)

      1.1 操作Word文件

      Win32com 是Python 操作Word 文件的常用組件,只要計算機已安裝Microsoft Office 軟件,Python 就可以通過內(nèi)置的Win32com 組件對Microsoft Office文件進(jìn)行存取。

      (1)創(chuàng)建Word應(yīng)用程序變量

      from win32com.client import Dispatch

      word=Dispatch(“Word.Application”)

      word.Visible=0

      word.DisplayAlerts=0

      Word 應(yīng)用程序變量的Visible 屬性表示是否顯示W(wǎng)ord 界面,0 表示不顯示;DisplayAlerts 屬性表示是否顯示W(wǎng)ord警告信息,0表示不顯示。

      (2)新建文檔并寫入內(nèi)容

      doc=word.Documents.Add()

      range=doc.Range(0,0)

      range.InsertAfter(“Python寫入”)

      Word 應(yīng)用程序變量的Documents.Add 方法用于新建一個文件,Range方法用于設(shè)置文件位置,InsertAfter方法表示在該位置后面寫入內(nèi)容。

      (3)保存、關(guān)閉文件并退出Word應(yīng)用程序

      doc.SaveAs(“D:\py.docx”)

      doc.Close()

      word.Quit()

      自動操作文件完成后退出Word 應(yīng)用程序,以免占用系統(tǒng)資源。

      1.2 讀寫Excel文件

      Pandas 是Python 廣泛使用的數(shù)據(jù)分析庫,可以用于讀寫Excel 表格、CSV 等格式的數(shù)據(jù)文件[4]。Pandas庫主要提供了Series、DataFrame兩種類型的數(shù)據(jù)對象用于存儲及分析數(shù)據(jù)。Series用于存儲一行或一列的數(shù)據(jù),可以理解為Excel表格中的一列數(shù)據(jù);DataFrame 用于存儲多行和多列的數(shù)據(jù)集合,可以理解為Excel 的表格。通過Pandas讀寫Excel文件的基本步驟如下:

      (1)通過pandas 提供的read_excel 方法讀取Excel文件

      import pandas as pd

      data=pd.read_excel(“員工信息.xlsx”)

      上面的data 變量即為DataFrame 類型的變量。

      (2)通過列名訪問數(shù)據(jù)列

      from datetime import datetime

      #計算工齡

      data[“工齡(年)”]=datetime.now().year-data

      [“入職時間”].dt.year

      (3)通過to_excel方法寫數(shù)據(jù)到Excel文件中

      data.to_excel(“員工工齡.xlsx”)

      1.3 Python發(fā)送郵件

      SMTP 是發(fā)送郵件的協(xié)議,Python 通過內(nèi)置的smtplib和email兩個模塊提供對SMTP的支持,smtplib 負(fù)責(zé)發(fā)送郵件,email 負(fù)責(zé)構(gòu)造郵件。使用Python發(fā)送郵件的主要代碼如下:

      (1)導(dǎo)入需要的smtplib和email模塊

      import smtplib

      import email.mime.multipart

      import email.mime.text

      (2)給出發(fā)件人郵箱、授權(quán)碼及收件人郵箱

      #發(fā)件人郵箱

      sendAddr=‘szitzhb@qq.com’

      #發(fā)件人授權(quán)碼

      password=‘wheqqckqwysxugha’

      #收件人郵箱

      recipientAddrs=‘itfans@163.com’

      (3)通過email 模塊的MIMEMultipart 對象構(gòu)造郵件內(nèi)容,包括發(fā)件人、收件人、郵件主題及正文

      #構(gòu)造郵件內(nèi)容

      msg=email.mime.multipart.MIMEMultipart()

      msg[‘from’]=sendAddr

      msg[‘to’]=recipientAddrs

      #郵件主題

      msg[‘subject’]=‘Python發(fā)送郵件’

      #郵件正文

      txt=email.mime.text.MIMEText(‘這是一封來自

      Python的郵件?!?,‘plain’,‘utf-8’)

      msg.attach(txt)

      (4)建立與服務(wù)器的連接并發(fā)送郵件

      #建立SMTP_SSL連接

      smtp=smtplib.SMTP_SSL(‘smtp.qq.com’,465)

      #登錄郵箱

      smtp.login(sendAddr,password)

      #發(fā)送郵件

      smtp.sendmail(sendAddr,recipientAddrs,str(msg))

      smtp.quit()

      2 綜合應(yīng)用

      企業(yè)人力資源部門給新員工發(fā)送PDF 格式的錄用通知書通知其辦理入職手續(xù),是人力資源部門的一項常規(guī)工作。如果錄用的新員工人數(shù)較多,則是一項費時費力的工作。我們可以通過Python 實現(xiàn)PDF 格式錄用通知書的批量產(chǎn)生并自動發(fā)送電子郵件,具體過程如圖1所示。

      圖1 批量產(chǎn)生錄用通知書并發(fā)送郵件過程

      2.1 制作新員工錄用通知書模板

      制作如圖2 所示的錄用通知書Word 模板,{{name}}、{{gender}}、{{department}}以及{{position}}表示占位符,是需要填充的內(nèi)容,并可以根據(jù)需要設(shè)置好格式。

      圖2 新員工錄用通知書模板

      2.2 讀取新員工錄用名單

      通過Pandas 從圖3 所示的員工錄用Excel 名單中讀取錄用信息。

      圖3 新員工錄用名單

      主要代碼如下:

      #導(dǎo)入pandas

      import pandas as pd

      #讀取excel文件

      emps=pd.read_excel(‘錄用名單.xlsx’)

      #依次獲得各列的值,即新員工姓名、

      性別、入職部門、崗位以及郵箱

      name=emps[“姓名”].str.rstrip()

      #將性別男、女轉(zhuǎn)換成先生、女生

      gender=emps[‘性別’].str.rstrip().map(dict(zip

      ([‘男’,‘女’],[‘先生’,‘女士’])))

      department=emps[‘入職部門’].str.rstrip()

      position=emps[‘入職崗位’].str.rstrip()

      email=emps[‘郵箱’].str.rstrip()

      2.3 根據(jù)模板批量生成錄用通知書

      使用DocxTemplate 可以根據(jù)模板批量生成錄用通知書,主要步驟如下:

      (1)安裝并導(dǎo)入DocxTemplate

      pip install docxtpl

      from docxtpl import DocxTemplate

      (2)使用2.2 節(jié)讀取的新員工錄用名單填充模板

      num=emps.shape[0]

      for i in range(num):

      context={

      “name”:name[i],

      “gender”:gender[i],

      “department”:department[i],

      “position”:position[i]

      tpl=DocxTemplate(‘錄用通知書模板.docx’)

      #通過DocxTemplate的render方法渲染模板

      tpl.render(context)

      #生成每個新員工的錄用通知書

      tpl.save(file_path+r“{}的錄用通知書.docx”.format

      (name[i]))

      生成的錄用通知書效果如圖4所示。

      圖4 生成的新員工錄用通知書

      2.4 生成PDF格式的錄用通知書

      可以通過Win32com 組件把上一步生成的Word 格式的錄用通知書自動轉(zhuǎn)換成PDF 格式。主要代碼如下:

      doc=word.Documents.Open(fileName)

      #下面的2行代碼用于把文件擴展名改為pdf

      index=fileName.find(“.”)

      pdfFile=fileName[0:index]+“.pdf”

      #存為PDF格式,17代表PDF格式

      doc.SaveAs(pdfFile,17)

      doc.Close()

      2.5 自動發(fā)送電子郵件

      使用Python 自動發(fā)送電子郵件,并把上一步生成的PDF 格式的錄用通知書作為附件發(fā)送。添加附件的主要代碼如下:

      msg=email.mime.multipart.MIMEMultipart()

      part=MIMEApplication(open(attachName,‘rb’).read())

      part.add_header(‘Content-Disposition’,‘a(chǎn)ttachment’,

      filename=attachName)

      msg.attach(part)

      3 結(jié)語

      Python語言為辦公自動化提供了Win32com、Pandas、DocxTemplate、smtplib 等豐富的類庫,可以實現(xiàn)Word、Excel文檔以及郵件處理的自動化,擺脫機械性和重復(fù)性的煩瑣事務(wù),降低企事業(yè)單位用工成本,提高工作“含金量”,實現(xiàn)企事業(yè)單位的自動化、高效化、智能化辦公。

      猜你喜歡
      辦公自動化通知書郵件
      基于James的院內(nèi)郵件管理系統(tǒng)的實現(xiàn)
      入學(xué)通知書
      工地上的他收到了北大錄取通知書
      淺談辦公自動化系統(tǒng)的設(shè)計與應(yīng)用
      活力(2019年21期)2019-04-01 12:17:06
      辦公自動化中的計算機應(yīng)用
      一封郵件引發(fā)的梅賽德斯反彈
      車迷(2018年12期)2018-07-26 00:42:32
      辦公自動化系統(tǒng)軟件教學(xué)探索
      辦公室自動化、辦公自動化與OA
      通知書
      50年前的大學(xué)錄取通知書
      中國火炬(2015年7期)2015-07-31 17:40:10
      宁波市| 亳州市| 图木舒克市| 乡宁县| 依兰县| 延津县| 宁阳县| 桂东县| 广水市| 屏东县| 亚东县| 诸暨市| 安吉县| 吉安县| 阳朔县| 桂林市| 嘉荫县| 莱阳市| 邵阳县| 上犹县| 兴国县| 华阴市| 镇康县| 临高县| 京山县| 嘉兴市| 利津县| 林甸县| 景泰县| 桐庐县| 海口市| 阳原县| 岳阳市| 河北区| 博罗县| 乌兰察布市| 双江| 剑阁县| 哈巴河县| 虎林市| 宾川县|