• python处理excel


    整理一下python处理excel的openpyxl相关代码

    0x01 安装openpyxl

    pip install openpyxl

    0x02 创建一个excel表格

        A、导包
        B、在内存中创建一个表格
        C、将内存中的虚拟表格保存到本地!
    
    • 1
    • 2
    • 3

    示例代码:

    from openpyxl import Workbook
    wb = Workbook()
    wb.save('first_create.xlsx')
    
    • 1
    • 2
    • 3

    0x03 打开一个已经存在的excel表格

        A、导包
        B、load_workbook(),返回值是一个对象,通过操作这个对象去操作表格
    
    • 1
    • 2

    示例代码:

    from openpyxl import load_workbook
    wb = load_workbook('first_create.xlsx')
    
    • 1
    • 2

    0x04 获取,修改sheet的名字

        A、获取当前活跃的工作表(sheet) -->  使用active方法
        B、使用sheet.title得到表名!
        C、所有的修改必须保存,不然都是在内存中修改!
    
    • 1
    • 2
    • 3

    示例代码:

    from openpyxl import load_workbook
    wb = load_workbook('first_create.xlsx')
    sheet = wb.active
    sheet.title = 'XXXXXXX'
    print(sheet.title)
    wb.save('first_create.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    0x05 向excel表格中写入数据(一个一个写)

        A、无则增,有则改(覆盖)
    
    • 1

    示例代码:

    from openpyxl import load_workbook
    import datetime
    wb = load_workbook('first_create.xlsx', data_only=True)
    sheet = wb.active
    sheet['B3'] = 'CCCC'
    sheet['C3'] = '18'
    sheet['D3'] = '170cm'
    sheet['E3'] = '88, 88, 88'
    sheet['F3'] = datetime.datetime.now().strftime('%Y-%m-%d')
    sheet['B3'] = 'BBBB'
    wb.save('first_create.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    0x06 向excel表格中一次性写入多条数据

        原则:默认是在写在有数据的行的下一行!
        data_only=True --> 只显示值,由于excel表格中,有很多公式,不显示公式,只显示值! 
    
    • 1
    • 2

    示例代码:

    from openpyxl import load_workbook
    import datetime
    wb = load_workbook('first_create.xlsx', data_only=True)
    sheet = wb.active
    sheet.append(['ssyy', 18, '180cm', '90, 90, 90', datetime.datetime.now().strftime('%Y-%m-%d')])
    wb.save('first_create.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    0x07 获取所有的sheet名字

       ->  sheetnames
    
    • 1

    示例代码:

    from openpyxl import load_workbook
    wb = load_workbook('员工工资表.xlsx', data_only=True)
    print(wb.sheetnames)
    
    • 1
    • 2
    • 3

    0x08 获取指定的活动表, 拿到活动表后,操作活动表

        get_sheet_by_name()  --> 这种方法会报警告错误!使用以下方法
        wb['表名']           --> 
    
    • 1
    • 2

    示例代码:

    from openpyxl import load_workbook
    wb = load_workbook('员工工资表.xlsx', data_only=True)
    sheet = wb['Sheet1']
    print(sheet)
    
    • 1
    • 2
    • 3
    • 4

    0x09获取指定表后,查询单元格数据

        A、有数据就返回数据
        B、无数据就返回None
    
    • 1
    • 2

    示例代码:

    from openpyxl import load_workbook
    wb = load_workbook('员工工资表.xlsx', data_only=True)
    sheet = wb['Sheet1']
    data_D1 = sheet['D1'] # sheet['D1']返回的是一个单元格对象,通过value取值
    print(data_D1.value)
    data_GG1 = sheet['GG1']
    print(data_GG1.value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    0x10 循环遍历【使用切片方式】

    	获取单元格值 --> sheet['B1':'F1'] 
        返回值是一个元祖,里面有一个元祖,对其里面的元祖进行for循环,然后用value取值
    
    • 1
    • 2

    示例代码:

    from openpyxl import load_workbook
    wb = load_workbook('员工工资表.xlsx', data_only=True)
    sheet = wb['Sheet1']
    # print(sheet['B1':'F1'])
    for cell in sheet['B1': 'F1'][0]:
        print(cell.value, end=' ')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    0x11 按行遍历

     遍历思路:1、逐行遍历,每一行是一个元祖; 
             2、对每个行进行遍历,得到每个单元格,对单元格取值,得到结果
    
    • 1
    • 2

    示例代码:

    from openpyxl import load_workbook
    wb = load_workbook('员工工资表.xlsx', data_only=True)
    sheet = wb['Sheet1']
    for row in sheet:
        for cell in row:
            print(cell.value, end=' ')
        print(' ')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    0x12 按列遍历

    遍历思路:1、逐列遍历,每一列是一个元祖;
        	 2、对每个列进行遍历,得到每个单元格,对单元格取值,得到结果
    
    • 1
    • 2

    示例代码:

    from openpyxl import load_workbook
    wb = load_workbook('员工工资表.xlsx', data_only=True)
    sheet = wb['Sheet1']
    for column in sheet.columns:
        for cell in column:
            print(cell.value, end=' ')
        print(' ')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    0x13 遍历指定行,指定列

        sheet.iter_rows, min_row, max_row, min_col, max_col
    
    • 1

    示例代码:

    from openpyxl import load_workbook
    wb = load_workbook('员工工资表.xlsx', data_only=True)
    sheet = wb['Sheet1']
    for row in sheet.iter_rows(min_row=2, max_row=5, min_col=3, max_col=4):
        for cell in row:
            print(cell.value, end=' ')
        print(' ')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    0x14 设置单元格样式(导包部分)

          Font     : 设置字体
          colors   : 设置颜色
          Alignment: 设置文本对齐方式
          size     :  设置字体大小 
          italic   :  设置斜体
          bold     :  设置粗体
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    from openpyxl.styles import Font, colors, Alignment

    0x15 设置字体样式

          A、声明样式:font_style = '样式内容';
          B、设置样式:sheet['D1'] = font_style
    
    • 1
    • 2

    示例代码:

    from openpyxl import load_workbook
    from openpyxl.styles import Font, colors, Alignment
    wb = load_workbook('员工工资表.xlsx')
    sheet = wb['Sheet1']
    sheet['D1'].font = Font(name='宋体', size=20, italic=True, color=colors.BLACK, bold=True)
    wb.save('员工工资表_01.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    0x16 设置对齐方式

    示例代码:

    from openpyxl import load_workbook
    from openpyxl.styles import Font, colors, Alignment
    wb = load_workbook('员工工资表.xlsx')
    sheet = wb['Sheet1']
    sheet['D1'].alignment = Alignment(horizontal='center', vertical='center')
    wb.save('员工工资表_01.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    0x17 设置单元格的宽和高

        row_dimensions , height
        column_dimensions, width
    
    • 1
    • 2

    示例代码:

    from openpyxl import load_workbook
    from openpyxl.styles import Font, colors, Alignment
    wb = load_workbook('员工工资表_01.xlsx')
    sheet = wb['Sheet1']
    # 设置第二行的行高
    sheet.row_dimensions[2].height = 30
    # 设置第三列的列宽
    sheet.column_dimensions['C'].width = 40
    wb.save('员工工资表_01.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    《数据库系统概论》:DBA的职责有些
    HP路由器和交换机日志分析
    nuxtJS:搭建nuxt项目(vue2)
    python flask服务如何注册到nacos
    当 xxl-job 遇上 docker → 它晕了,我也乱了!
    WVP+ZLMediaKit+MediaServerUI实现摄像头GB28181推流播放录制---经验避免刚接触视频的小伙伴踩坑
    4.Autofac依赖注入初使用
    软考高级软件架构师论文——论软件架构评估
    java计算机毕业设计ssm+vue二手手机销售平台
    大模型微调概览
  • 原文地址:https://blog.csdn.net/weixin_52118017/article/details/126313483