前言
python自动化办公将主要研究如何通过python代码读取excel文件的形式实现在实际生活中应用,本文属于分享博文,涉及深度比较浅。
首先安装包
pip install pandas faker openpyxl -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
一、python对excel的基础使用操作
1.1 读取excel文件
import pandas as pd
# 读取 Excel 文件中的第一个工作表
df = pd.read_excel('一万条学生成绩数据.xlsx')
# 显示前几行数据
print(df.head())
1.2 写入学生数据信息
import pandas as pd
# Step 1: 读取 Excel 文件
# 假设有一个文件 'example.xlsx',我们读取它
df = pd.read_excel('一万条学生成绩数据.xlsx')
# 打印原始数据以供参考
print("Original Data:")
print(df)
# Step 2: 添加一行新数据
# 创建一个新行,列名需要与现有的列名保持一致
new_row = {'Column1': 'New Data 1', 'Column2': 'New Data 2', 'Column3': 'New Data 3'}
# 将新行转换为 DataFrame 格式
new_row_df = pd.DataFrame([new_row])
# 使用 pd.concat 方法将新行添加到原始数据框中
df = pd.concat([df, new_row_df], ignore_index=True)
# 打印添加新行后的数据
print("\nData After Adding New Row:")
print(df)
# Step 3: 将包含新行的数据写入到新的 Excel 文件中
# 将数据框写入新的 Excel 文件
df.to_excel('example_with_new_row.xlsx', index=False)
print("\nNew Excel file 'example_with_new_row.xlsx' saved with the new row.")
二、自动生成录取通知书
2.1生成十万条假数据
import random
import pandas as pd
from faker import Faker
# 初始化 Faker
fake = Faker('zh_CN') # 使用中文
# 定义一些大学和专业
universities = [
'清华大学', '北京大学', '浙江大学', '复旦大学', '上海交通大学',
'中国科学技术大学', '南京大学', '武汉大学', '华中科技大学', '中山大学'
]
majors = [
'计算机科学与技术', '电子信息工程', '机械工程', '金融学', '临床医学',
'法学', '建筑学', '化学工程与工艺', '生物工程', '国际经济与贸易'
]
# 生成成绩的函数
def generate_score(min_score=50, max_score=100):
return random.randint(min_score, max_score)
# 生成祝愿语的函数
def generate_wish_message(university, principal_name):
return f"祝贺您被 {university} 录取,愿您在校长 {principal_name} 的带领下,在大学的学习和生活中一帆风顺,前程似锦!"
# 生成假数据
def generate_data(num_records):
data = []
for i in range(num_records):
student_name = fake.name() # 生成中文姓名
exam_id = f"EX{i+1:06d}" # 考号,格式化为 6 位数,如 EX000001
chinese_score = generate_score()
math_score = generate_score()
english_score = generate_score()
science_score = generate_score()
# 总分 = 语文 + 数学 + 英语 + 科学
total_score = chinese_score + math_score + english_score + science_score
# 随机选择一个大学和专业
university = random.choice(universities)
major = random.choice(majors)
# 生成校长姓名
principal_name = fake.name()
# 生成祝愿语
wish_message = generate_wish_message(university, principal_name)
data.append({
'姓名': student_name,
'考号': exam_id,
'语文成绩': chinese_score,
'数学成绩': math_score,
'英语成绩': english_score,
'科学成绩': science_score,
'总分': total_score,
'录取大学': university,
'录取专业': major,
'校长姓名': principal_name,
'祝愿语': wish_message
})
return data
# 生成 10 万条数据
num_records = 100000
data = generate_data(num_records)
# 转换为 DataFrame
df = pd.DataFrame(data)
# 写入 Excel 文件
df.to_excel('十万条学生成绩数据_带录取信息.xlsx', index=False)
print(f"已成功生成 {num_records} 条学生成绩数据(包含录取信息和祝愿语),并写入到 Excel 文件中。")
2.2制作录取通知书
安装包
pip install pandas python-docx -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
import pandas as pd
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_ALIGN_PARAGRAPH
# 读取Excel文件
df = pd.read_excel('十万条学生成绩数据_带录取信息.xlsx')
# 创建一个Word文档对象
doc = Document()
# 设置录取通知书模板
def create_admission_letter(doc, name, exam_