• 【转】多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!


    转自:https://blog.csdn.net/weixin_41846769/article/details/108273349

    前言

    大家好,在之前的十几篇办公自动化系列文章中,我们大多是以真实的案例需求来讲解Python如何进行自动化办公操作,并且多次使用到openpyxl来处理表格,今天我们就来详细的盘点Python操作Excel神器openpyxl的各种操作!

    本文将以详细图表/代码的形式讲解如何对Excel进行读取写入样式调整,可以当成速查手册使用,随用随查,建议收藏!

    安装

    openpyxl是一个非标准库,因此需要自行安装,安装过程并不困难,Windows/Mac用户均可以在命令行(CMD)/终端(Terminal)中使用pip安装

    pip install openpyxl
    

    前置知识

    在使用这个模块之前我们需要对Excel表格结构有个比较细致的了解,见下图:img简而言之,一个Excel工作簿workbook由一个或者多个工作表sheet组成,一个sheet可以看作是多个行row组成,也可以看作是多个列column组成,而每一行每一列都由多个单元格cell组成!

    读取Excel

    1.载入Excel

    1.  
      from openpyxl import load_workbook
    2.  
      workbook = load_workbook(filename='测试.xlsx’) 
    3.  
      print(workbook.sheetnames)

    注意load_workbook只能打开已经存在的Excel,不能创建新的工作簿

    2.根据名称获取工作表

    1.  
      from openpyxl import load_workbook
    2.  
      workbook = load_workbook(filename='其他.xlsx'
    3.  
      print(workbook.sheetnames)
    4.  
      sheet = workbook['工作业务']

    如果只有一张工作表也可以用:

    sheet = workbook.active
    

    3.获取表格内容所在的范围

    print(sheet.dimensions)
    

    4.获取某个单元格的具体内容

    这边提供两种方法,注意都需要以cell.value形式输出具体值img

    5.获取某个单元格的行、列、坐标

    print(cell.rowcell.columncell.coordinate)
    

    6.获取多个格子的值

    img这里也有一个细节,Excel中每一列由字母确定,是字符型;每一行由一个数字确定,是整型。当然,上面的三种方法都是获取一堆表格,现在要输出每一个表格的值就需要遍历

    1.  
      for cell in cells: 
    2.  
          print(cell.value)

    三种方法依然有自己的局限性,如果我需要特定范围的值,且懒得换算成字母数字坐标。例如我想要获取第2行至第5行、第1列至第3列的全部单元格。因此必须掌握第4种方法:

    img

    7.读取所有的行

    1.  
      for row in sheet.rows: 
    2.  
          print(row)

    Excel写入

    1. 保存Excel

    workbook.save(filename='Excel工作表1.xlsx')
    
    • 如果读取和写入Excel的路径相同则为对原文件进行修改

    • 如果读取和写入Excel的路径不同则为保存成新的文件

    2.写入单元格

    1.  
      cell = sheet['A1'
    2.  
      cell.value = '业务需求
    3.  
       

    3.写入一行或多行数据

    imgimg

    4.将公式写入单元格并保存

    sheet['K11'] = '=AVERAGE(K1:K10)' 
    

    5.插入一行或多行

    img

    6. 插入一列或多列

    img

    7.删除多行

    img

    img

    8.删除多列

    img

    9. 移动范围数据

    img

    10. 创建新的Excel表格

    1.  
      from openpyxl import Workbook
    2.  
      workbook = Workbook()

    Excel样式调整

    1. 设置字体样式

    img

    2. 设置对齐样式

    img

    • 水平对齐:distributed, justify, center, left, fill, centerContinuous, right, general

    • 垂直对齐:bottom, distributed, justify, center, top

    3. 设置边框样式

    img

    • 边线样式:double, mediumDashDotDot, slantDashDot, dashDotDot, dotted, hair, mediumDashed, dashed, dashDot, thin, mediumDashDot, medium, thick

    4. 设置单元格填充样式

    img

    5. 设置行高和列宽

    1.  
      sheet.row_dimensions[1].height = 50 
    2.  
      sheet.column_dimensions['C'].width = 20 

    6. 单元格合并与取消

    1.  
      # 合并
    2.  
      sheet.merge_cells('A1:B2') 
    3.  
      sheet.merge_cells(start_row=1, start_column=3
    4.  
                        end_row=2, end_column=4)
    5.  
       
    6.  
      # 取消合并
    7.  
      sheet.unmerge_cells('A1:B2') 
    8.  
      sheet.unmerge_cells(start_row=1, start_column=3
    9.  
                          end_row=2, end_column=4)

  • 相关阅读:
    Oracle 建用户、 表空间脚本
    Java常见Jar包的用途
    EF:无法检查模型兼容性,因为数据库不包含模型元数据。
    Eclipse -Xms256M -Xmx640M -XX:PermSize=256m -XX:MaxPermSize=768m
    CentOS远程连接Windows操作系统
    spring boot / cloud (二十) 相同服务,发布不同版本,支撑并行的业务需求
    jvm
    jvm
    spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的?
    spring boot / cloud (十八) 使用docker快速搭建本地环境
  • 原文地址:https://www.cnblogs.com/langqi250/p/13641087.html
Copyright © 2020-2023  润新知