亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

分享20個(gè)實(shí)用的Python?Excel自動(dòng)化腳本

 更新時(shí)間:2025年02月12日 10:14:57   作者:VictorGuardain  
這篇文章主要介紹了20個(gè)實(shí)用的Python?Excel自動(dòng)化腳本,用于自動(dòng)化處理和分析Excel文件,提高工作效率,從批量填充單元格、設(shè)置行高與列寬到生成數(shù)據(jù)透視表和圖表,涵蓋了數(shù)據(jù)處理和分析的各個(gè)方面,需要的朋友可以參考下

前言

在數(shù)據(jù)處理和分析的過(guò)程中,Excel文件是我們?nèi)粘9ぷ髦谐R?jiàn)的格式。通過(guò)Python,我們可以實(shí)現(xiàn)對(duì)Excel文件的各種自動(dòng)化操作,提高工作效率。

本文將分享20個(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中的“備注”列全部填充為“已處理”。對(duì)于普通用戶來(lái)說(shuō),處理大量數(shù)據(jù)時(shí)常需要對(duì)某一列進(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)', '無(wú)效')  
print("符合條件的行已刪除!")

解釋

該腳本從Excel中刪除“狀態(tài)”列中值為“無(wú)效”的行。這種操作在數(shù)據(jù)清理過(guò)程中非常常見(jiàn),有助于減少數(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è)新的工作表。這對(duì)于組織數(shù)據(jù),分開(kāi)不同任務(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格式提供的,通過(guò)該腳本可以方便地將其轉(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)告更具視覺(jué)吸引力。

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文件中。這對(duì)于了解數(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è)前綴。對(duì)于需要處理大量Excel文件的用戶來(lái)說(shuō),這種批量操作非常便利,比如根據(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è)績(jī)報(bào)告給相關(guān)人員。通過(guò)自動(dòng)化郵件發(fā)送,可以節(jié)省時(shí)間并減少人為錯(cuò)誤。

11. 合并多個(gè)Excel文件

import pandas as pd
import os

def merge_excel_files(folder_path, output_file):
    all_data = pd.DataFrame()
    for filename in os.listdir(folder_path):
        if filename.endswith('.xlsx'):
            file_path = os.path.join(folder_path, filename)
            df = pd.read_excel(file_path)
            all_data = pd.concat([all_data, df], ignore_index=True)
    all_data.to_excel(output_file, index=False)

merge_excel_files('your_folder_path', 'merged_file.xlsx')
print("多個(gè)Excel文件合并成功!")

解釋

該腳本將指定文件夾下的所有Excel文件合并成一個(gè)文件。在處理分散在多個(gè)文件中的數(shù)據(jù)時(shí),這個(gè)功能可以將數(shù)據(jù)整合在一起,方便后續(xù)的統(tǒng)一分析。

12. 拆分Excel文件

import pandas as pd

def split_excel_file(file_path, column_name, output_folder):
    df = pd.read_excel(file_path)
    unique_values = df[column_name].unique()
    for value in unique_values:
        sub_df = df[df[column_name] == value]
        output_file = os.path.join(output_folder, f'{value}.xlsx')
        sub_df.to_excel(output_file, index=False)

split_excel_file('example.xlsx', '部門(mén)', 'output_folder')
print("Excel文件拆分成功!")

解釋

此腳本根據(jù)指定列的唯一值將Excel文件拆分成多個(gè)文件。例如,按照“部門(mén)”列將數(shù)據(jù)拆分成不同部門(mén)對(duì)應(yīng)的文件,便于各部門(mén)獨(dú)立查看和處理自己的數(shù)據(jù)。

13. 替換單元格內(nèi)容

import pandas as pd

def replace_cell_content(file_path, column_name, old_value, new_value):
    df = pd.read_excel(file_path)
    df[column_name] = df[column_name].replace(old_value, new_value)
    df.to_excel(file_path, index=False)

replace_cell_content('example.xlsx', '產(chǎn)品名稱', '舊產(chǎn)品', '新產(chǎn)品')
print("單元格內(nèi)容替換成功!")

解釋

該腳本將指定列中的特定內(nèi)容替換為新的內(nèi)容。在數(shù)據(jù)修正或更新時(shí),這個(gè)功能可以快速修改數(shù)據(jù)中的錯(cuò)誤或過(guò)時(shí)信息。

14. 對(duì)數(shù)據(jù)進(jìn)行排序

import pandas as pd

def sort_excel_data(file_path, column_name, ascending=True):
    df = pd.read_excel(file_path)
    df = df.sort_values(by=column_name, ascending=ascending)
    df.to_excel(file_path, index=False)

sort_excel_data('example.xlsx', '銷售額', ascending=False)
print("數(shù)據(jù)排序成功!")

解釋

這個(gè)腳本的主要功能是對(duì) Excel 文件中的數(shù)據(jù)根據(jù)指定列進(jìn)行排序操作,并且可以選擇升序或降序排列,最后將排序后的數(shù)據(jù)保存回原 Excel 文件。排序操作在數(shù)據(jù)處理和分析中非常常見(jiàn),例如按照銷售額對(duì)銷售數(shù)據(jù)進(jìn)行降序排序,能快速找出銷售額高的記錄。

15. 統(tǒng)計(jì)特定列的唯一值數(shù)量

import pandas as pd

def count_unique_values(file_path, column_name):
    df = pd.read_excel(file_path)
    unique_count = df[column_name].nunique()
    print(f"{column_name}列的唯一值數(shù)量為: {unique_count}")

count_unique_values('example.xlsx', '客戶編號(hào)')

解釋

該腳本用于統(tǒng)計(jì)Excel文件中指定列的唯一值數(shù)量。在數(shù)據(jù)分析中,了解某列有多少不同的值可以幫助我們快速掌握數(shù)據(jù)的分布情況,例如統(tǒng)計(jì)客戶編號(hào)的唯一值數(shù)量可以知道有多少不同的客戶。

16. 提取指定列到新的Excel文件

import pandas as pd

def extract_columns(file_path, columns, output_file):
    df = pd.read_excel(file_path)
    new_df = df[columns]
    new_df.to_excel(output_file, index=False)

extract_columns('example.xlsx', ['姓名', '年齡'], 'extracted_columns.xlsx')
print("指定列提取成功!")

解釋

此腳本可以從一個(gè)Excel文件中提取指定的列,并保存到一個(gè)新的Excel文件中。當(dāng)我們只需要數(shù)據(jù)中的部分信息時(shí),使用這個(gè)腳本可以快速篩選出所需的數(shù)據(jù),避免處理大量無(wú)關(guān)信息。

17. 為Excel表格添加邊框

from openpyxl import load_workbook
from openpyxl.styles import Border, Side

def add_border_to_excel(file_path):
    wb = load_workbook(file_path)
    ws = wb.active
    thin_border = Border(left=Side(style='thin'), 
                         right=Side(style='thin'), 
                         top=Side(style='thin'), 
                         bottom=Side(style='thin'))
    for row in ws.iter_rows():
        for cell in row:
            cell.border = thin_border
    wb.save(file_path)

add_border_to_excel('example.xlsx')
print("表格邊框添加成功!")

解釋

該腳本為Excel表格中的每個(gè)單元格添加了細(xì)邊框。添加邊框可以使表格更加清晰易讀,特別是在打印或展示數(shù)據(jù)時(shí),能夠提升表格的美觀度和專業(yè)性。

18. 檢查Excel文件中是否存在空行并刪除

import pandas as pd

def remove_empty_rows(file_path):
    df = pd.read_excel(file_path)
    df = df.dropna(how='all')
    df.to_excel(file_path, index=False)

remove_empty_rows('example.xlsx')
print("空行刪除成功!")

解釋

此腳本用于檢查Excel文件中是否存在所有列都為空的行,并將這些空行刪除??招锌赡軙?huì)影響數(shù)據(jù)處理和分析的結(jié)果,通過(guò)刪除空行可以保證數(shù)據(jù)的完整性和準(zhǔn)確性。

19. 根據(jù)多列條件篩選數(shù)據(jù)

import pandas as pd

def filter_data_by_multiple_conditions(file_path, conditions, output_file):
    df = pd.read_excel(file_path)
    query_str = ' & '.join([f'{col} {op} {val}' for col, op, val in conditions])
    filtered_df = df.query(query_str)
    filtered_df.to_excel(output_file, index=False)

# 示例條件:年齡大于25且性別為女
conditions = [('年齡', '>', 25), ('性別', '==', "'女'")]
filter_data_by_multiple_conditions('example.xlsx', conditions, 'filtered_data.xlsx')
print("多條件篩選數(shù)據(jù)成功!")

解釋

該腳本可以根據(jù)多個(gè)列的條件對(duì)Excel數(shù)據(jù)進(jìn)行篩選,并將篩選結(jié)果保存到新的文件中。在實(shí)際數(shù)據(jù)分析中,我們常常需要根據(jù)多個(gè)條件來(lái)篩選出符合要求的數(shù)據(jù),使用這個(gè)腳本可以方便地實(shí)現(xiàn)多條件篩選。

20. 對(duì)Excel中的日期列進(jìn)行格式化

import pandas as pd

def format_date_column(file_path, column_name, date_format):
    df = pd.read_excel(file_path)
    df[column_name] = pd.to_datetime(df[column_name]).dt.strftime(date_format)
    df.to_excel(file_path, index=False)

format_date_column('example.xlsx', '日期', '%Y-%m-%d')
print("日期列格式化成功!")

解釋

此腳本用于對(duì)Excel文件中指定的日期列進(jìn)行格式化。在處理日期數(shù)據(jù)時(shí),不同的業(yè)務(wù)需求可能需要不同的日期格式,通過(guò)這個(gè)腳本可以將日期列轉(zhuǎn)換為我們需要的格式,方便后續(xù)的數(shù)據(jù)分析和展示。

總結(jié)

到此這篇關(guān)于20個(gè)實(shí)用的Python Excel自動(dòng)化腳本的文章就介紹到這了,更多相關(guān)Python Excel自動(dòng)化腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論