一文分享20个必学的Excel表格操作Python脚本

Written by

in

文章目录
  • 首先,我们创建一个示例的Excel文件bank_data.xlsx,并填充一些示例数据。 import pandas as pd # 创建示例数据 data = { ‘客户ID’: [1, 2, 3, 4, 5], ‘姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘孙七’], ‘联系方式’: [‘13800000000’, ‘13900000000’, ‘13700000000’, ‘13600000000’, ‘13500000000’], ‘账户余额’: [10000.0, 20000.0, 15000.0, 30000.0, 25000.0], ‘贷款类型’: [‘信用贷款’, ‘房贷’, ‘信用贷款’, ‘车贷’, ‘信用贷款’], ‘贷款金额’: [50000.0, 300000.0, 60000.0, 100000.0, 70000.0], ‘利率’: [5.0, 4.5, 5.2, 4.8, 5.1], ‘贷款期限(年)’: [3, 20, 4, 5, 3]} # 保存到Excel文件 df = pd.DataFrame(data) df.to_excel(‘bank_data.xlsx’, index=False) 请先运行上面的代码以生成示例数据文件bank_data.xlsx。
  • 使用场景:从Excel中加载数据进行后续处理。 代码解释:使用pandas.read_excel函数读取Excel文件。 示例代码: import pandas as pd # 读取Excel文件 df = pd.read_excel(‘bank_data.xlsx’) print(df.head())
  • 使用场景:将处理后的数据保存到新的Excel文件。 代码解释:使用DataFrame.to_excel方法写入Excel文件。 示例代码: import pandas as pd # 读取现有数据 df = pd.read_excel(‘bank_data.xlsx’) # 写入新的Excel文件 df.to_excel(‘processed_bank_data.xlsx’, index=False)
  • 使用场景:修改Excel中的某个具体值。 代码解释:通过索引定位单元格并赋新值。 示例代码: import pandas as pd # 读取现有数据 df = pd.read_excel(‘bank_data.xlsx’) # 更新第一个客户的账户余额 df.at[0, ‘账户余额’] = 12000.0 # 保存更新后的数据 df.to_excel(‘updated_bank_data.xlsx’, index=False)
  • 使用场景:向现有的Excel文件中添加一个新的工作表。 代码解释:使用openpyxl库来操作Excel文件。 示例代码: from openpyxl import load_workbook # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) # 创建新的工作表 ws = wb.create_sheet(title=”新工作表”) # 保存工作簿 wb.save(‘bank_data_with_new_sheet.xlsx’)
  • 使用场景:删除Excel文件中的指定工作表。 代码解释:使用openpyxl库删除工作表。 示例代码: from openpyxl import load_workbook # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) # 删除指定的工作表 if ‘新工作表’ in wb.sheetnames: del wb[‘新工作表’] # 保存工作簿 wb.save(‘bank_data_deleted_sheet.xlsx’)
  • 使用场景:复制Excel文件中的指定工作表。 代码解释:使用openpyxl库复制工作表。 示例代码: from openpyxl import load_workbook # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) # 复制指定的工作表 source = wb[‘Sheet1’] target = wb.copy_worksheet(source) target.title = “复制的工作表” # 保存工作簿 wb.save(‘bank_data_copied_sheet.xlsx’)
  • 使用场景:重命名Excel文件中的指定工作表。 代码解释:使用openpyxl库重命名工作表。 示例代码: from openpyxl import load_workbook # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) # 重命名指定的工作表 sheet = wb[‘Sheet1’] sheet.title = “重命名的工作表” # 保存工作簿 wb.save(‘bank_data_renamed_sheet.xlsx’)
  • 使用场景:在Excel文件中查找特定值。 代码解释:使用pandas库查找特定值。 示例代码: import pandas as pd # 读取现有数据 df = pd.read_excel(‘bank_data.xlsx’) # 查找特定值 result = df[df[‘姓名’] == ‘张三’] print(result)
  • 使用场景:根据条件筛选数据。 代码解释:使用pandas库筛选数据。 示例代码: import pandas as pd # 读取现有数据 df = pd.read_excel(‘bank_data.xlsx’) # 筛选出贷款金额大于50000的数据 filtered_df = df[df[‘贷款金额’] > 50000] # 打印筛选结果 print(filtered_df)
  • 使用场景:对数据进行排序。 代码解释:使用pandas库对数据进行排序。 示例代码: import pandas as pd # 读取现有数据 df = pd.read_excel(‘bank_data.xlsx’) # 按账户余额降序排序 sorted_df = df.sort_values(by=’账户余额’, ascending=False) # 打印排序结果 print(sorted_df)
  • 使用场景:对数据进行分组并计算汇总。 代码解释:使用pandas库进行分组和汇总。 示例代码: import pandas as pd # 读取现有数据 df = pd.read_excel(‘bank_data.xlsx’) # 按贷款类型分组并计算贷款金额总和 grouped_df = df.groupby(‘贷款类型’)[‘贷款金额’].sum() # 打印分组汇总结果 print(grouped_df)
  • 使用场景:合并Excel文件中的多个单元格。 代码解释:使用openpyxl库合并单元格。 示例代码: from openpyxl import load_workbook # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) ws = wb.active # 合并单元格A1到C1 ws.merge_cells(‘A1:C1’) # 保存工作簿 wb.save(‘bank_data_merged_cells.xlsx’)
  • 使用场景:设置Excel文件中单元格的格式。 代码解释:使用openpyxl库设置单元格格式。 示例代码: from openpyxl import load_workbook from openpyxl.styles import Font, Alignment # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) ws = wb.active # 设置A1单元格的字体和对齐方式 cell = ws[‘A1′] cell.font = Font(bold=True, color=”FF0000″) cell.alignment = Alignment(horizontal=’center’, vertical=’center’) # 保存工作簿 wb.save(‘bank_data_formatted_cell.xlsx’)
  • 使用场景:在Excel文件中插入图表。 代码解释:使用openpyxl库插入图表。 示例代码: import pandas as pd from openpyxl import load_workbook from openpyxl.chart import BarChart, Reference # 读取现有数据 df = pd.read_excel(‘bank_data.xlsx’) # 保存到临时文件 df.to_excel(‘temp_bank_data.xlsx’, index=False) # 加载现有工作簿 wb = load_workbook(‘temp_bank_data.xlsx’) ws = wb.active # 创建柱状图 chart = BarChart() data = Reference(ws, min_col=4, min_row=1, max_row=len(df) + 1, max_col=4) categories = Reference(ws, min_col=1, min_row=2, max_row=len(df) + 1) chart.add_data(data, titles_from_data=True) chart.set_categories(categories) chart.title = “账户余额柱状图” ws.add_chart(chart, “F1”) # 保存工作簿 wb.save(‘bank_data_with_chart.xlsx’)
  • 使用场景:计算数据的总和、平均值等统计信息。 代码解释:使用pandas库计算统计信息。 示例代码: import pandas as pd # 读取现有数据 df = pd.read_excel(‘bank_data.xlsx’) # 计算账户余额的总和和平均值 total_balance = df[‘账户余额’].sum() average_balance = df[‘账户余额’].mean() # 打印结果 print(f”账户余额总和: {total_balance}”) print(f”账户余额平均值: {average_balance}”)
  • 使用场景:根据条件设置单元格格式。 代码解释:使用openpyxl库设置条件格式。 示例代码: from openpyxl import load_workbook from openpyxl.formatting.rule import CellIsRule from openpyxl.styles import PatternFill # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) ws = wb.active # 定义条件格式规则 red_fill = PatternFill(start_color=”FF0000″, end_color=”FF0000″, fill_type=”solid”) rule = CellIsRule(operator=’lessThan’, formula=[‘15000’], fill=red_fill) # 应用条件格式 ws.conditional_formatting.add(‘D2:D6’, rule) # 保存工作簿 wb.save(‘bank_data_conditional_format.xlsx’)
  • 使用场景:拆分Excel文件中已经合并的单元格。 代码解释:使用openpyxl库拆分合并的单元格。 示例代码: from openpyxl import load_workbook # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) ws = wb.active # 拆分A1到C1的合并单元格 ws.unmerge_cells(‘A1:C1’) # 保存工作簿 wb.save(‘bank_data_unmerged_cells.xlsx’)
  • 使用场景:清除Excel文件中单元格的内容或样式。 代码解释:使用openpyxl库清除内容或样式。 示例代码: from openpyxl import load_workbook # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) ws = wb.active # 清除A1单元格的内容 ws[‘A1’].value = None # 清除A1单元格的样式 ws[‘A1’].font = None ws[‘A1’].fill = None ws[‘A1’].border = None ws[‘A1’].alignment = None ws[‘A1’].number_format = None ws[‘A1’].protection = None # 保存工作簿 wb.save(‘bank_data_cleared_content_and_style.xlsx’)
  • 使用场景:自动调整Excel文件中列的宽度。 代码解释:使用openpyxl库自动调整列宽。 示例代码: from openpyxl import load_workbook # 加载现有工作簿 wb = load_workbook(‘bank_data.xlsx’) ws = wb.active # 自动调整所有列的宽度 for col in ws.columns: max_length = 0 column = col[0].column_letter # 获取列字母 for cell in col: try: if len(str(cell.value)) > max_length: max_length = len(cell.value) except: pass adjusted_width = (max_length + 2) ws.column_dimensions[column].width = adjusted_width # 保存工作簿 wb.save(‘bank_data_auto_adjusted_columns.xlsx’)
  • 使用场景:保存处理后的Excel文件。 代码解释:使用pandas库保存处理后的数据。 示例代码: import pandas as pd # 读取现有数据 df = pd.read_excel(‘bank_data.xlsx’) # 保存处理后的数据 df.to_excel(‘final_processed_bank_data.xlsx’, index=False) 到此这篇关于一文分享20个必学的Excel表格操作Python脚本的文章就介绍到这了,更多相关Python操作Excel表格脚本内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python操作Excel的10个必学脚本分享 Python3脚本实现Excel与TXT的智能转换 分享20个实用的Python Excel自动化脚本 10个Python Excel自动化脚本分享 四个Python操作Excel的常用脚本分享 Python脚本操作Excel实现批量替换功能
  • 目录
    • 示例数据 (bank_data.xlsx)
    • 1. 读取Excel文件
    • 2. 写入Excel文件
    • 3. 更新特定单元格
    • 4. 添加新的工作表
    • 5. 删除工作表
    • 6. 复制工作表
    • 7. 重命名工作表
    • 8. 查找特定值
    • 9. 筛选数据
    • 10. 排序数据
    • 11. 数据分组与汇总
    • 12. 合并单元格
    • 13. 设置单元格格式
    • 14. 插入图表
    • 15. 计算总和、平均值等
    • 16. 使用条件格式
    • 17. 拆分合并的单元格
    • 18. 清除内容或样式
    • 19. 自动调整列宽
    • 20. 保存文件

    首先,我们创建一个示例的Excel文件bank_data.xlsx,并填充一些示例数据。

    import pandas as pd
    # 创建示例数据
    data = {
    '客户ID': [1, 2, 3, 4, 5],
    '姓名': ['张三', '李四', '王五', '赵六', '孙七'],
    '联系方式': ['13800000000', '13900000000', '13700000000', '13600000000', '13500000000'],
    '账户余额': [10000.0, 20000.0, 15000.0, 30000.0, 25000.0],
    '贷款类型': ['信用贷款', '房贷', '信用贷款', '车贷', '信用贷款'],
    '贷款金额': [50000.0, 300000.0, 60000.0, 100000.0, 70000.0],
    '利率': [5.0, 4.5, 5.2, 4.8, 5.1],
    '贷款期限(年)': [3, 20, 4, 5, 3]}
    # 保存到Excel文件
    df = pd.DataFrame(data)
    df.to_excel('bank_data.xlsx', index=False)
    

    请先运行上面的代码以生成示例数据文件bank_data.xlsx。

    • 使用场景:从Excel中加载数据进行后续处理。
    • 代码解释:使用pandas.read_excel函数读取Excel文件。

    示例代码:

    import pandas as pd
    # 读取Excel文件
    df = pd.read_excel('bank_data.xlsx')
    print(df.head())
    

    • 使用场景:将处理后的数据保存到新的Excel文件。
    • 代码解释:使用DataFrame.to_excel方法写入Excel文件。

    示例代码:

    import pandas as pd
    # 读取现有数据
    df = pd.read_excel('bank_data.xlsx')
    # 写入新的Excel文件
    df.to_excel('processed_bank_data.xlsx', index=False)
    

    • 使用场景:修改Excel中的某个具体值。
    • 代码解释:通过索引定位单元格并赋新值。

    示例代码:

    import pandas as pd
    # 读取现有数据
    df = pd.read_excel('bank_data.xlsx')
    # 更新第一个客户的账户余额
    df.at[0, '账户余额'] = 12000.0
    # 保存更新后的数据
    df.to_excel('updated_bank_data.xlsx', index=False)
    

    • 使用场景:向现有的Excel文件中添加一个新的工作表。
    • 代码解释:使用openpyxl库来操作Excel文件。

    示例代码:

    from openpyxl import load_workbook
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    # 创建新的工作表
    ws = wb.create_sheet(title="新工作表")
    # 保存工作簿
    wb.save('bank_data_with_new_sheet.xlsx')
    

    • 使用场景:删除Excel文件中的指定工作表。
    • 代码解释:使用openpyxl库删除工作表。

    示例代码:

    from openpyxl import load_workbook
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    # 删除指定的工作表
    if '新工作表' in wb.sheetnames:
    del wb['新工作表']
    # 保存工作簿
    wb.save('bank_data_deleted_sheet.xlsx')
    

    • 使用场景:复制Excel文件中的指定工作表。
    • 代码解释:使用openpyxl库复制工作表。

    示例代码:

    from openpyxl import load_workbook
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    # 复制指定的工作表
    source = wb['Sheet1']
    target = wb.copy_worksheet(source)
    target.title = "复制的工作表"
    # 保存工作簿
    wb.save('bank_data_copied_sheet.xlsx')
    

    • 使用场景:重命名Excel文件中的指定工作表。
    • 代码解释:使用openpyxl库重命名工作表。

    示例代码:

    from openpyxl import load_workbook
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    # 重命名指定的工作表
    sheet = wb['Sheet1']
    sheet.title = "重命名的工作表"
    # 保存工作簿
    wb.save('bank_data_renamed_sheet.xlsx')
    

    • 使用场景:在Excel文件中查找特定值。
    • 代码解释:使用pandas库查找特定值。

    示例代码:

    import pandas as pd
    # 读取现有数据
    df = pd.read_excel('bank_data.xlsx')
    # 查找特定值
    result = df[df['姓名'] == '张三']
    print(result)
    

    • 使用场景:根据条件筛选数据。
    • 代码解释:使用pandas库筛选数据。

    示例代码:

    import pandas as pd
    # 读取现有数据
    df = pd.read_excel('bank_data.xlsx')
    # 筛选出贷款金额大于50000的数据
    filtered_df = df[df['贷款金额'] > 50000]
    # 打印筛选结果
    print(filtered_df)
    

    • 使用场景:对数据进行排序。
    • 代码解释:使用pandas库对数据进行排序。

    示例代码:

    import pandas as pd
    # 读取现有数据
    df = pd.read_excel('bank_data.xlsx')
    # 按账户余额降序排序
    sorted_df = df.sort_values(by='账户余额', ascending=False)
    # 打印排序结果
    print(sorted_df)
    

    • 使用场景:对数据进行分组并计算汇总。
    • 代码解释:使用pandas库进行分组和汇总。

    示例代码:

    import pandas as pd
    # 读取现有数据
    df = pd.read_excel('bank_data.xlsx')
    # 按贷款类型分组并计算贷款金额总和
    grouped_df = df.groupby('贷款类型')['贷款金额'].sum()
    # 打印分组汇总结果
    print(grouped_df)
    

    • 使用场景:合并Excel文件中的多个单元格。
    • 代码解释:使用openpyxl库合并单元格。

    示例代码:

    from openpyxl import load_workbook
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    ws = wb.active
    # 合并单元格A1到C1
    ws.merge_cells('A1:C1')
    # 保存工作簿
    wb.save('bank_data_merged_cells.xlsx')
    

    • 使用场景:设置Excel文件中单元格的格式。
    • 代码解释:使用openpyxl库设置单元格格式。

    示例代码:

    from openpyxl import load_workbook
    from openpyxl.styles import Font, Alignment
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    ws = wb.active
    # 设置A1单元格的字体和对齐方式
    cell = ws['A1']
    cell.font = Font(bold=True, color="FF0000")
    cell.alignment = Alignment(horizontal='center', vertical='center')
    # 保存工作簿
    wb.save('bank_data_formatted_cell.xlsx')
    

    • 使用场景:在Excel文件中插入图表。
    • 代码解释:使用openpyxl库插入图表。

    示例代码:

    import pandas as pd
    from openpyxl import load_workbook
    from openpyxl.chart import BarChart, Reference
    # 读取现有数据
    df = pd.read_excel('bank_data.xlsx')
    # 保存到临时文件
    df.to_excel('temp_bank_data.xlsx', index=False)
    # 加载现有工作簿
    wb = load_workbook('temp_bank_data.xlsx')
    ws = wb.active
    # 创建柱状图
    chart = BarChart()
    data = Reference(ws, min_col=4, min_row=1, max_row=len(df) + 1, max_col=4)
    categories = Reference(ws, min_col=1, min_row=2, max_row=len(df) + 1)
    chart.add_data(data, titles_from_data=True)
    chart.set_categories(categories)
    chart.title = "账户余额柱状图"
    ws.add_chart(chart, "F1")
    # 保存工作簿
    wb.save('bank_data_with_chart.xlsx')
    

    • 使用场景:计算数据的总和、平均值等统计信息。
    • 代码解释:使用pandas库计算统计信息。

    示例代码:

    import pandas as pd
    # 读取现有数据
    df = pd.read_excel('bank_data.xlsx')
    # 计算账户余额的总和和平均值
    total_balance = df['账户余额'].sum()
    average_balance = df['账户余额'].mean()
    # 打印结果
    print(f"账户余额总和: {total_balance}")
    print(f"账户余额平均值: {average_balance}")
    

    • 使用场景:根据条件设置单元格格式。
    • 代码解释:使用openpyxl库设置条件格式。

    示例代码:

    from openpyxl import load_workbook
    from openpyxl.formatting.rule import CellIsRule
    from openpyxl.styles import PatternFill
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    ws = wb.active
    # 定义条件格式规则
    red_fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
    rule = CellIsRule(operator='lessThan', formula=['15000'], fill=red_fill)
    # 应用条件格式
    ws.conditional_formatting.add('D2:D6', rule)
    # 保存工作簿
    wb.save('bank_data_conditional_format.xlsx')
    

    • 使用场景:拆分Excel文件中已经合并的单元格。
    • 代码解释:使用openpyxl库拆分合并的单元格。

    示例代码:

    from openpyxl import load_workbook
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    ws = wb.active
    # 拆分A1到C1的合并单元格
    ws.unmerge_cells('A1:C1')
    # 保存工作簿
    wb.save('bank_data_unmerged_cells.xlsx')
    

    • 使用场景:清除Excel文件中单元格的内容或样式。
    • 代码解释:使用openpyxl库清除内容或样式。

    示例代码:

    from openpyxl import load_workbook
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    ws = wb.active
    # 清除A1单元格的内容
    ws['A1'].value = None
    # 清除A1单元格的样式
    ws['A1'].font = None
    ws['A1'].fill = None
    ws['A1'].border = None
    ws['A1'].alignment = None
    ws['A1'].number_format = None
    ws['A1'].protection = None
    # 保存工作簿
    wb.save('bank_data_cleared_content_and_style.xlsx')
    

    • 使用场景:自动调整Excel文件中列的宽度。
    • 代码解释:使用openpyxl库自动调整列宽。

    示例代码:

    from openpyxl import load_workbook
    # 加载现有工作簿
    wb = load_workbook('bank_data.xlsx')
    ws = wb.active
    # 自动调整所有列的宽度
    for col in ws.columns:
    max_length = 0
    column = col[0].column_letter  # 获取列字母
    for cell in col:
    try:
    if len(str(cell.value)) > max_length:
    max_length = len(cell.value)
    except:
    pass
    adjusted_width = (max_length + 2)
    ws.column_dimensions[column].width = adjusted_width
    # 保存工作簿
    wb.save('bank_data_auto_adjusted_columns.xlsx')
    

    • 使用场景:保存处理后的Excel文件。
    • 代码解释:使用pandas库保存处理后的数据。

    示例代码:

    import pandas as pd
    # 读取现有数据
    df = pd.read_excel('bank_data.xlsx')
    # 保存处理后的数据
    df.to_excel('final_processed_bank_data.xlsx', index=False)
    

    到此这篇关于一文分享20个必学的Excel表格操作Python脚本的文章就介绍到这了,更多相关Python操作Excel表格脚本内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Python操作Excel的10个必学脚本分享
    • Python3脚本实现Excel与TXT的智能转换
    • 分享20个实用的Python Excel自动化脚本
    • 10个Python Excel自动化脚本分享
    • 四个Python操作Excel的常用脚本分享
    • Python脚本操作Excel实现批量替换功能

    站内搜索