Py自动化办公—Word文档替换、Excel表格读取、Pdf文件生成和Email自动邮件发送实战案例

1. Word文档替换

1.1 问题背景

在日常工作中,我们常常需要对Word文档进行编辑。如果文档数量较多,手动编辑会浪费大量时间。那么,如何通过Python实现Word文档的自动化编辑呢?

1.2 解决方案

可以使用Python的`docx`模块实现Word文档的自动化编辑。下面是一个替换Word文档中内容的实例代码。

首先,我们需要先安装`docx`库。在终端中输入以下命令即可:

!pip install python-docx

接着,我们就可以进行代码编写了。以下代码实现了将Word文档中的“原文本”替换为“新文本”的功能。

import docx

def replace_text(file_path, old_text, new_text):

doc = docx.Document(file_path)

for p in doc.paragraphs:

if old_text in p.text:

p.text = p.text.replace(old_text, new_text)

doc.save(file_path)

上述代码中,`replace_text`函数接收三个参数,文件路径、原文本和新文本。函数会打开该文件并遍历所有段落(`paragraphs`),对于包含原文本的段落,将其替换为新文本,并保存修改后的文件。

比如,我们有一个名为“sample.docx”的Word文档,其中包含“Hello World!”这句话。我们可以通过`replace_text`函数将其替换为“Hello Python!”。

replace_text('sample.docx', 'Hello World!', 'Hello Python!')

2. Excel表格读取

2.1 问题背景

在日常工作中,我们常常需要处理Excel表格。如果表格数量较多,手动处理会耗费大量时间。那么,如何通过Python实现对Excel表格的自动化处理呢?

2.2 解决方案

可以使用Python的`pandas`模块实现Excel表格的自动化处理。以下是一个读取Excel表格中数据的实例代码。

首先,我们需要先安装`pandas`库。在终端中输入以下命令即可:

!pip install pandas

接着,我们就可以进行代码编写了。以下代码实现了读取Excel表格中数据的功能。

import pandas as pd

def read_excel(file_path):

df = pd.read_excel(file_path)

return df

上述代码中,`read_excel`函数接收一个参数——文件路径,函数会读取该文件,并转化为一个`DataFrame`对象。通过对`DataFrame`对象进行列、行的索引、筛选、聚合等操作,可以实现多种数据处理任务。

比如,我们有一个名为“sample.xlsx”的Excel表格,其中包含学生的姓名和成绩。我们可以通过`read_excel`函数读取并打印该表格中所有数据。

df = read_excel('sample.xlsx')

print(df)

3. Pdf文件生成

3.1 问题背景

在日常工作中,我们常常需要生成PDF文件。如果文件数量较多,手动生成会浪费大量时间。那么,如何通过Python实现PDF文件的自动化生成呢?

3.2 解决方案

可以使用Python的`reportlab`模块实现PDF文件的自动化生成。以下是一个生成PDF文件的实例代码。

首先,我们需要先安装`reportlab`库。在终端中输入以下命令即可:

!pip install reportlab

接着,我们就可以进行代码编写了。以下代码实现了生成包含“Hello World!”字样的PDF文件的功能。

from reportlab.pdfgen import canvas

from reportlab.lib.pagesizes import letter

def create_pdf(file_path):

c = canvas.Canvas(file_path, pagesize=letter)

c.drawString(100, 750, "Hello World!")

c.save()

上述代码中,`create_pdf`函数接收一个参数——文件路径,函数会生成该文件。在PDF文件中,`drawString`函数用于在指定位置插入指定字符串。

比如,我们可以通过`create_pdf`函数生成一个名为“sample.pdf”的PDF文件。

create_pdf('sample.pdf')

4. Email自动邮件发送

4.1 问题背景

在日常工作中,我们常常需要通过邮件与他人进行沟通。如果邮件数量较多,手动发送会浪费大量时间。那么,如何通过Python实现邮件的自动化发送呢?

4.2 解决方案

可以使用Python的`smtplib`模块实现邮件的自动化发送。以下是一个发送带有附件的邮件的实例代码。

首先,我们需要准备好邮件服务器的相关信息,如SMTP地址、端口号、密码等。例如,如果我们使用Gmail作为邮件服务器,可以这样设置:

smtp_server = "smtp.gmail.com"

smtp_port = 587

email = "你的Gmail邮箱地址"

password = "你的Gmail邮箱密码"

接着,我们就可以进行代码编写了。以下代码实现了发送带有"Hello World!"字样的纯文本邮件,并附带一个名为“test.docx”的附件的功能。其中,收件人和发件人信息请自行设置。

import smtplib

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

from email.mime.application import MIMEApplication

def send_email(receiver, subject, body, file_path):

msg = MIMEMultipart()

msg["From"] = email

msg["To"] = receiver

msg["Subject"] = subject

# 文本内容

text = MIMEText(body)

msg.attach(text)

# 附件内容

with open(file_path, "rb") as file:

attachment = MIMEApplication(file.read())

attachment.add_header('Content-Disposition', 'attachment', filename='test.docx')

msg.attach(attachment)

# 发送邮件

server = smtplib.SMTP(smtp_server, smtp_port)

server.starttls()

server.login(email, password)

server.sendmail(email, receiver, msg.as_string())

server.quit()

上述代码中,`send_email`函数接收四个参数:收件人邮箱、主题、正文、附件路径。函数会构建邮件内容,并附加上附件。然后,函数通过SMTP协议发送邮件。

比如,我们可以通过`send_email`函数将一个名为“test.docx”的附件发送给收件人“xxxxx@163.com”。

send_email("xxxxx@163.com", "测试邮件", "Hello World!", "test.docx")

到此,我们已经完成了Python自动化办公的实战案例。通过应用这些方法,可以减轻日常工作中的繁重任务,提高工作效率。

后端开发标签