广告位联系
返回顶部
分享到

20个实用的Python Excel自动化脚本介绍

python 来源:互联网 作者:佚名 发布时间:2025-02-13 21:18:30 人浏览
摘要

在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式。通过Python,我们可以实现对Excel文件的各种自动化操作,提高工作效率。 本文将分享20个实用的Excel自动化脚本,以帮助新

在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式。通过Python,我们可以实现对Excel文件的各种自动化操作,提高工作效率。

本文将分享20个实用的Excel自动化脚本,以帮助新手小白更轻松地掌握这些技能。

1. Excel单元格批量填充

1

2

3

4

5

6

7

8

9

10

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中的“备注”列全部填充为“已处理”。对于普通用户来说,处理大量数据时常需要对某一列进行统一标记,这个功能就显得尤为重要。

2. 设置行高与列宽

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

from openpyxl import load_workbook 

 

# 设置Excel的行高与列宽 

def set_row_column_size(file_path): 

    wb = load_workbook(file_path) 

    ws = wb.active 

 

    # 设置第一行行高、第一列列宽 

    ws.row_dimensions[1].height = 30  # 设置行高 

    ws.column_dimensions['A'].width = 20  # 设置列宽 

 

    wb.save(file_path) 

 

set_row_column_size('example.xlsx') 

print("行高和列宽设置成功!")

解释

这个脚本为Excel文件设置了第一行的行高和第一列的列宽。适当调整行高和列宽可以提高表格的可读性,尤其是在内容较多或较复杂时,使用此功能可以使报告更加美观易读。

3. 根据条件删除行

1

2

3

4

5

6

7

8

# 根据条件删除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', '状态', '无效') 

print("符合条件的行已删除!")

解释

该脚本从Excel中删除“状态”列中值为“无效”的行。这种操作在数据清理过程中非常常见,有助于减少数据集中的噪声,提高数据分析的准确性。

4. 创建新的Excel工作表

1

2

3

4

5

6

7

8

# 在现有Excel文件中创建新的工作表 

def create_new_sheet(file_path, sheet_name): 

    wb = load_workbook(file_path) 

    wb.create_sheet(title=sheet_name)  # 创建新的工作表 

    wb.save(file_path) 

 

create_new_sheet('example.xlsx', '新工作表') 

print("新工作表创建成功!")

解释

该脚本在已有的Excel文件中创建一个新的工作表。这对于组织数据,分开不同任务或项目的数据非常有用,保持文件结构的清晰。

5. 导入CSV文件到Excel

1

2

3

4

5

6

7

# 将CSV文件导入到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文件成功导入到Excel!")

解释

这个脚本将CSV文件导入到Excel中。很多时候,数据是以CSV格式提供的,通过该脚本可以方便地将其转换为Excel格式,便于后续分析和处理。

6. 数据透视表生成

1

2

3

4

5

6

7

8

# 生成数据透视表并保存到新的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', '地区', '销售额', 'pivot_output.xlsx') 

print("透视表生成成功!")

解释

该脚本根据给定的“地区”和“销售额”列生成汇总透视表,并保存到新文件中。在进行业务分析时,透视表能快速展示不同维度下的数据总结。

7. 格式化Excel

1

2

3

4

5

6

7

8

9

10

11

12

13

14

from openpyxl.styles import Font, Color 

 

# 设置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")  # 设置字体加粗和红色 

 

    wb.save(file_path) 

 

format_cells('example.xlsx') 

print("单元格格式化成功!")

解释

该脚本将example.xlsx中的A列字体设置为加粗和红色。这种格式化通常用于强调特定数据,使报告更具视觉吸引力。

8. 分析并输出描述性统计

1

2

3

4

5

6

7

8

# 输出描述性统计到Excel 

def descriptive_statistics(file_path, output_file): 

    df = pd.read_excel(file_path) 

    stats = df.describe()  # 计算描述性统计 

    stats.to_excel(output_file) 

 

descriptive_statistics('example.xlsx', 'statistics_output.xlsx') 

print("描述性统计输出成功!")

解释

该脚本计算Excel文件的描述性统计信息(如均值、标准差等),并将结果保存到新的Excel文件中。这对于了解数据的基本特征非常重要,尤其在数据分析前期阶段。

9. 批量修改Excel文件名称

1

2

3

4

5

6

7

8

9

10

11

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文件,在每个文件名前面添加一个前缀。对于需要处理大量Excel文件的用户来说,这种批量操作非常便利,比如根据年份或项目为文件命名,以便于管理和归档。

10. 自动发送包含Excel数据的电子邮件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

import smtplib 

from email.mime.multipart import MIMEMultipart 

from email.mime.application import MIMEApplication 

from email.mime.text import MIMEText 

 

# 自动发送带有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) 

 

    # 发送邮件 

    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("邮件发送成功!")

解释

此脚本使用SMTP协议自动发送一封电子邮件,其中附带了一个Excel文件。这个功能在工作中尤其有用,比如每月定期发送财务报表或业绩报告给相关人员。通过自动化邮件发送,可以节省时间并减少人为错误。

11. 合并多个Excel文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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("多个Excel文件合并成功!")

解释

该脚本将指定文件夹下的所有Excel文件合并成一个文件。在处理分散在多个文件中的数据时,这个功能可以将数据整合在一起,方便后续的统一分析。

12. 拆分Excel文件

1

2

3

4

5

6

7

8

9

10

11

12

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', '部门', 'output_folder')

print("Excel文件拆分成功!")

解释

此脚本根据指定列的唯一值将Excel文件拆分成多个文件。例如,按照“部门”列将数据拆分成不同部门对应的文件,便于各部门独立查看和处理自己的数据。

13. 替换单元格内容

1

2

3

4

5

6

7

8

9

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', '产品名称', '旧产品', '新产品')

print("单元格内容替换成功!")

解释

该脚本将指定列中的特定内容替换为新的内容。在数据修正或更新时,这个功能可以快速修改数据中的错误或过时信息。

14. 对数据进行排序

1

2

3

4

5

6

7

8

9

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("数据排序成功!")

解释

这个脚本的主要功能是对 Excel 文件中的数据根据指定列进行排序操作,并且可以选择升序或降序排列,最后将排序后的数据保存回原 Excel 文件。排序操作在数据处理和分析中非常常见,例如按照销售额对销售数据进行降序排序,能快速找出销售额高的记录。

15. 统计特定列的唯一值数量

1

2

3

4

5

6

7

8

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}列的唯一值数量为: {unique_count}")

 

count_unique_values('example.xlsx', '客户编号')

解释

该脚本用于统计Excel文件中指定列的唯一值数量。在数据分析中,了解某列有多少不同的值可以帮助我们快速掌握数据的分布情况,例如统计客户编号的唯一值数量可以知道有多少不同的客户。

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

1

2

3

4

5

6

7

8

9

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("指定列提取成功!")

解释

此脚本可以从一个Excel文件中提取指定的列,并保存到一个新的Excel文件中。当我们只需要数据中的部分信息时,使用这个脚本可以快速筛选出所需的数据,避免处理大量无关信息。

17. 为Excel表格添加边框

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

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表格中的每个单元格添加了细边框。添加边框可以使表格更加清晰易读,特别是在打印或展示数据时,能够提升表格的美观度和专业性。

18. 检查Excel文件中是否存在空行并删除

1

2

3

4

5

6

7

8

9

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文件中是否存在所有列都为空的行,并将这些空行删除。空行可能会影响数据处理和分析的结果,通过删除空行可以保证数据的完整性和准确性。

19. 根据多列条件筛选数据

1

2

3

4

5

6

7

8

9

10

11

12

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("多条件筛选数据成功!")

解释

该脚本可以根据多个列的条件对Excel数据进行筛选,并将筛选结果保存到新的文件中。在实际数据分析中,我们常常需要根据多个条件来筛选出符合要求的数据,使用这个脚本可以方便地实现多条件筛选。

20. 对Excel中的日期列进行格式化

1

2

3

4

5

6

7

8

9

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("日期列格式化成功!")

解释

此脚本用于对Excel文件中指定的日期列进行格式化。在处理日期数据时,不同的业务需求可能需要不同的日期格式,通过这个脚本可以将日期列转换为我们需要的格式,方便后续的数据分析和展示。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Python实现将PDF文件拆分任意页数介绍

    Python实现将PDF文件拆分任意页数介绍
    PyMuPDF,简称fitz,是一个轻量级的Python库,它基于MuPDF的C++库,提供了丰富的功能,包括但不限于PDF的读取、编辑、转换和渲染。Fitz作为Py
  • 20个实用的Python Excel自动化脚本介绍
    在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式。通过Python,我们可以实现对Excel文件的各种自动化操作,提高工作效率
  • Python实现移动指定图片到指定目录

    Python实现移动指定图片到指定目录
    前阵子,拍了200张照片,然后挑了20张找人精修下,今天修完发来给我,然后我先对比一下和原图的效果差异,以便做验收。由于前期挑出来
  • 使用Python IDLE进行Debug调试的图文介绍

    使用Python IDLE进行Debug调试的图文介绍
    1.首先以我的Python版本为例为大家讲解,我的版本是Python 3.7,版本问题对使用情况影响不大。 2.接着我们可以通过新建文件夹来输入我们的
  • 树莓派启动python的实现方法介绍

    树莓派启动python的实现方法介绍
    树莓派运行Python程序的方法: 一、RaspBerry系统设置 1、首先在开发板没有通电情况下,连接硬件,以及项目中用到传感器。比如当前项目需
  • Python给Excel写入数据的四种方法介绍
    Python 在数据处理领域应用广泛,其中与 Excel 文件的交互是常见需求之一。 本文将介绍四种使用 Python 给Excel 文件写入数据的方法,并结合生
  • 用Python编写一个MP3分割工具

    用Python编写一个MP3分割工具
    最终效果图 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
  • Python如何生成requirements.txt
    在 Python 项目中,requirements.txt文件通常用于列出项目依赖的库及其版本号。这样可以方便地在其他环境中安装相同的依赖。 以下是生成req
  • 10个Python Excel自动化脚本分享介绍
    在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式。通过Python,我们可以实现对Excel文件的各种自动化操作,提高工作效率
  • 基于Python编写windows电脑用户操作记录查看器

    基于Python编写windows电脑用户操作记录查看器
    软件功能 读取系统现有的日志记录: Windows系统事件日志 最近访问的文件记录 程序安装和执行记录 刷新日志、搜索记录、删除选中记录 软
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计