10個(gè)Python Excel自動(dòng)化腳本分享
在數(shù)據(jù)處理和分析的過程中,Excel文件是我們?nèi)粘9ぷ髦谐R姷母袷健Mㄟ^Python,我們可以實(shí)現(xiàn)對Excel文件的各種自動(dòng)化操作,提高工作效率。
本文將再次分享10個(gè)實(shí)用的Excel自動(dòng)化腳本,以幫助新手小白更輕松地掌握這些技能。
1. Excel單元格批量填充
import pandas as pd
# 批量填充指定列的單元格
def fill_column(file_path, column_name, value):
df = pd.read_excel(file_path)
df[column_name] = value # 將指定列的所有單元格填充為value
df.to_excel(file_path, index=False)
fill_column('example.xlsx', '備注', '已處理')
print("備注列已成功填充!")
解釋
此腳本將example.xlsx中的“備注”列全部填充為“已處理”。對于普通用戶來說,處理大量數(shù)據(jù)時(shí)常需要對某一列進(jìn)行統(tǒng)一標(biāo)記,這個(gè)功能就顯得尤為重要。
2. 設(shè)置行高與列寬
from openpyxl import load_workbook
# 設(shè)置Excel的行高與列寬
def set_row_column_size(file_path):
wb = load_workbook(file_path)
ws = wb.active
# 設(shè)置第一行行高、第一列列寬
ws.row_dimensions[1].height = 30 # 設(shè)置行高
ws.column_dimensions['A'].width = 20 # 設(shè)置列寬
wb.save(file_path)
set_row_column_size('example.xlsx')
print("行高和列寬設(shè)置成功!")
解釋
這個(gè)腳本為Excel文件設(shè)置了第一行的行高和第一列的列寬。適當(dāng)調(diào)整行高和列寬可以提高表格的可讀性,尤其是在內(nèi)容較多或較復(fù)雜時(shí),使用此功能可以使報(bào)告更加美觀易讀。
3. 根據(jù)條件刪除行
# 根據(jù)條件刪除Excel中的行
def delete_rows_based_on_condition(file_path, column_name, condition):
df = pd.read_excel(file_path)
df = df[df[column_name] != condition] # 刪除滿足條件的行
df.to_excel(file_path, index=False)
delete_rows_based_on_condition('example.xlsx', '狀態(tài)', '無效')
print("符合條件的行已刪除!")
解釋
該腳本從Excel中刪除“狀態(tài)”列中值為“無效”的行。這種操作在數(shù)據(jù)清理過程中非常常見,有助于減少數(shù)據(jù)集中的噪聲,提高數(shù)據(jù)分析的準(zhǔn)確性。
4. 創(chuàng)建新的Excel工作表
# 在現(xiàn)有Excel文件中創(chuàng)建新的工作表
def create_new_sheet(file_path, sheet_name):
wb = load_workbook(file_path)
wb.create_sheet(title=sheet_name) # 創(chuàng)建新的工作表
wb.save(file_path)
create_new_sheet('example.xlsx', '新工作表')
print("新工作表創(chuàng)建成功!")
解釋
該腳本在已有的Excel文件中創(chuàng)建一個(gè)新的工作表。這對于組織數(shù)據(jù),分開不同任務(wù)或項(xiàng)目的數(shù)據(jù)非常有用,保持文件結(jié)構(gòu)的清晰。
5. 導(dǎo)入CSV文件到Excel
# 將CSV文件導(dǎo)入到Excel工作表
def import_csv_to_excel(csv_file, excel_file):
df = pd.read_csv(csv_file)
df.to_excel(excel_file, index=False)
import_csv_to_excel('data.csv', 'imported_data.xlsx')
print("CSV文件成功導(dǎo)入到Excel!")
解釋
這個(gè)腳本將CSV文件導(dǎo)入到Excel中。很多時(shí)候,數(shù)據(jù)是以CSV格式提供的,通過該腳本可以方便地將其轉(zhuǎn)換為Excel格式,便于后續(xù)分析和處理。
6. 數(shù)據(jù)透視表生成
# 生成數(shù)據(jù)透視表并保存到新的Excel文件
def generate_pivot_table(file_path, index_column, values_column, output_file):
df = pd.read_excel(file_path)
pivot_table = df.pivot_table(index=index_column, values=values_column, aggfunc='sum') # 匯總
pivot_table.to_excel(output_file)
generate_pivot_table('sales_data.xlsx', '地區(qū)', '銷售額', 'pivot_output.xlsx')
print("透視表生成成功!")
解釋
該腳本根據(jù)給定的“地區(qū)”和“銷售額”列生成匯總透視表,并保存到新文件中。在進(jìn)行業(yè)務(wù)分析時(shí),透視表能快速展示不同維度下的數(shù)據(jù)總結(jié)。
7. 格式化Excel
from openpyxl.styles import Font, Color
# 設(shè)置Excel單元格字體樣式
def format_cells(file_path):
wb = load_workbook(file_path)
ws = wb.active
for cell in ws['A']: # 遍歷A列
cell.font = Font(bold=True, color="FF0000") # 設(shè)置字體加粗和紅色
wb.save(file_path)
format_cells('example.xlsx')
print("單元格格式化成功!")
解釋
該腳本將example.xlsx中的A列字體設(shè)置為加粗和紅色。這種格式化通常用于強(qiáng)調(diào)特定數(shù)據(jù),使報(bào)告更具視覺吸引力。
8. 分析并輸出描述性統(tǒng)計(jì)
# 輸出描述性統(tǒng)計(jì)到Excel
def descriptive_statistics(file_path, output_file):
df = pd.read_excel(file_path)
stats = df.describe() # 計(jì)算描述性統(tǒng)計(jì)
stats.to_excel(output_file)
descriptive_statistics('example.xlsx', 'statistics_output.xlsx')
print("描述性統(tǒng)計(jì)輸出成功!")
解釋
該腳本計(jì)算Excel文件的描述性統(tǒng)計(jì)信息(如均值、標(biāo)準(zhǔn)差等),并將結(jié)果保存到新的Excel文件中。這對于了解數(shù)據(jù)的基本特征非常重要,尤其在數(shù)據(jù)分析前期階段。
9. 批量修改Excel文件名稱
import os
# 批量重命名指定目錄下的Excel文件
def rename_excel_files(directory, prefix):
for filename in os.listdir(directory):
if filename.endswith('.xlsx'):
new_name = f"{prefix}_{filename}"
os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
print(f"已將 {filename} 重命名為 {new_name}")
rename_excel_files('/path/to/excel/files', '2024')
解釋
該腳本批量重命名指定目錄中的所有Excel文件,在每個(gè)文件名前面添加一個(gè)前綴。對于需要處理大量Excel文件的用戶來說,這種批量操作非常便利,比如根據(jù)年份或項(xiàng)目為文件命名,以便于管理和歸檔。
10. 自動(dòng)發(fā)送包含Excel數(shù)據(jù)的電子郵件
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.mime.text import MIMEText
# 自動(dòng)發(fā)送帶有Excel附件的電子郵件
def send_email(to_address, subject, body, excel_file):
from_address = "your_email@example.com"
password = "your_password"
msg = MIMEMultipart()
msg['From'] = from_address
msg['To'] = to_address
msg['Subject'] = subject
# 添加正文
msg.attach(MIMEText(body, 'plain'))
# 添加Excel附件
with open(excel_file, "rb") as attachment:
part = MIMEApplication(attachment.read(), Name=os.path.basename(excel_file))
part['Content-Disposition'] = f'attachment; filename="{os.path.basename(excel_file)}"'
msg.attach(part)
# 發(fā)送郵件
with smtplib.SMTP('smtp.example.com', 587) as server:
server.starttls()
server.login(from_address, password)
server.send_message(msg)
send_email('recipient@example.com', 'Monthly Report', 'Please find attached the monthly report.', 'report.xlsx')
print("郵件發(fā)送成功!")
解釋
此腳本使用SMTP協(xié)議自動(dòng)發(fā)送一封電子郵件,其中附帶了一個(gè)Excel文件。這個(gè)功能在工作中尤其有用,比如每月定期發(fā)送財(cái)務(wù)報(bào)表或業(yè)績報(bào)告給相關(guān)人員。通過自動(dòng)化郵件發(fā)送,可以節(jié)省時(shí)間并減少人為錯(cuò)誤。
以上就是10個(gè)Python Excel自動(dòng)化腳本分享的詳細(xì)內(nèi)容,更多關(guān)于Python Excel自動(dòng)化的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于Flask框架添加多個(gè)AI模型的API并進(jìn)行交互
這篇文章主要介紹了如何基于 Flask 框架開發(fā) AI 模型 API 管理系統(tǒng),允許用戶添加、刪除不同 AI 模型的 API 密鑰,感興趣的可以了解下2025-03-03
淺談python中的getattr函數(shù) hasattr函數(shù)
下面小編就為大家?guī)硪黄獪\談python中的getattr函數(shù) hasattr函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06
windows安裝TensorFlow和Keras遇到的問題及其解決方法
這篇文章主要介紹了windows安裝TensorFlow和Keras遇到的問題及其解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-07-07

