Python-操作Excel

在数据处理和报表生成过程中,Excel是一个经常使用的工具。Python中的openpyxl库可以让您通过编程方式读取、写入和操作Excel文件,从而实现自动化的数据处理和报表生成。本文将介绍openpyxl库的基本用法和常见操作,帮助您快速上手使用Python处理Excel文件。

  • 安装openpyxl
    首先,您需要安装openpyxl库。您可以使用pip来安装openpyxl:

    pip install openpyxl
  • 创建Excel文件
    您可以使用openpyxl来创建一个新的Excel文件,并添加数据和样式。

    from openpyxl import Workbook
    # 创建一个新的工作簿
    wb = Workbook()
    # 获取默认的工作表
    ws = wb.active
    # 添加数据到单元格
    ws['A1'] = 'Hello'
    ws['B1'] = 'World'
    # 保存工作簿
    wb.save('example.xlsx')
  • 读取Excel文件
    您也可以使用openpyxl来读取已经存在的Excel文件,并获取其中的数据。

    from openpyxl import load_workbook
    # 加载现有的工作簿
    wb = load_workbook('example.xlsx')
    # 获取默认的工作表
    ws = wb.active
    # 获取单元格的值
    print(ws['A1'].value) # 输出: Hello
    print(ws['B1'].value) # 输出: World
  • 处理Excel文件
    openpyxl还提供了丰富的功能来处理Excel文件,例如插入行列、合并单元格、设置样式等。

    # 插入一行
    ws.insert_rows(2)
    # 合并单元格
    ws.merge_cells('A2:B2')
    # 设置单元格样式
    from openpyxl.styles import Font
    ws['A2'].font = Font(bold=True, color="FF0000")
    # 保存工作簿
    wb.save('example.xlsx')
  • 结语
    通过本文的介绍,您已经了解了openpyxl库的基本用法和常见操作。openpyxl库提供了丰富的功能,可以满足您在处理Excel文件时的各种需求。在实际应用中,您可以根据具体的需求和场景来灵活运用openpyxl库,实现自动化的Excel数据处理和报表生成。

  • 个人使用习惯

    # -*- coding: utf-8 -*-
    """
    --------------------------------
    release : 1.0.0
    Time : 2024/3/20 13:48
    Author : Ning
    File : open_pyxl.py
    Python对Excel的读写主要有xlrd、xlwt、xlutils、openpyxl、xlsxwriter几种。
    --------------------------------
    """
    from openpyxl import Workbook, load_workbook
    class xlsx_class():
    def get_sheet_names(self):
    """
    获取Excel中所有sheet的名称
    """
    file_path = '1.xlsx'
    xls = load_workbook(file_path)
    sheet_names = xls.sheetnames
    print(sheet_names)
    # 加载现有的工作簿
    def read_xlsx(self):
    wb = load_workbook('/Users/***/Downloads/autohome.xlsx')
    """
    ('配置项', '参数名', '参数名id', '参数对应的值')
    ('基本参数', '级别', 53, '紧凑型SUV')
    ('基本参数', '级别', 53, '中型SUV')
    ('基本参数', '级别', 53, '紧凑型车')
    """
    # 获取默认的工作表
    # ws = wb.active
    # 指定工作表
    ws = wb.get_sheet_by_name('车型库最新的配置参数')
    # iter_rows(values_only=True) 方法用于遍历工作表的每一行,并返回每行的数据
    # values_only=True 表示只返回单元格的值,而不包括样式等其他信息。
    for row in ws.iter_rows(values_only=True, max_row=100):
    print(row) # ('配置项', '参数名', '参数名id', '参数对应的值')
    # 获取指定单元格的值
    print(ws['A1'].value) # 输出: 配置项
    print(ws['B1'].value) # 输出: 参数名
    def jiemi(self):
    """
    受保护的工作簿 - 解密
    """
    import msoffcrypto
    file = msoffcrypto.OfficeFile(open('encrypted.xls', 'rb')) # 读取原文件
    file.load_key(password='VelvetSweatshop') # 填入设置保护时设置的密码, 默认密码为 'VelvetSweatshop'
    file.decrypt(open('decrypted.xls', 'wb')) # 解密后保存为新文件, 新文件无保护,可直接使用 xlrd 读取内容
    def xlsx_save(self):
    """
    xlsx文件存储
    """
    suoyin_path = r'test.xlsx'
    data = [["2021"], ["2020"]]
    wb = Workbook()
    ws1 = wb.active
    ws1.title = '新增'
    ws2 = wb.create_sheet(title='索引')
    ws3 = wb.create_sheet(title='汇总')
    # 写入对应的Sheet表头
    ws1.append(["年份1"])
    ws2.append(["年份2"])
    ws3.append(["年份3"])
    for a in data:
    ws1.append(a) # 循环写入对应的Sheet表数据
    ws2.append(a) # 循环写入对应的Sheet表数据
    ws3.append(a) # 循环写入对应的Sheet表数据
    wb.save(suoyin_path) # 最后储存
    print(f"Excel 数据插入成功")
    if __name__ == "__main__":
    xlsx_class().xlsx_save()
posted @   柠柠七  阅读(153)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示