zoukankan      html  css  js  c++  java
  • 【转】多图+代码 | 详解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)

  • 相关阅读:
    Atitit attilax要工作研究的要素 纪要 方案 趋势 方向 概念 理论
    Atitit 常见每日流程日程日常工作.docx v7 r8f
    Atitit it 互联网 软件牛人的博客列表
    Atitit 信息链(Information Chain)的概念理解 attilax总结
    Atitit 知识点的体系化 框架与方法 如何了解 看待xxx
    Atitit 聚合搜索多个微博 attilax总结
    Atitit 企业知识管理PKM与PIM
    Atitit 项目沟通管理 Atitit 沟通之道 attilax著.docx
    Atitit 项目管理软件 在线服务 attilax总结 1. 项目管理协作的历史 1 1.1. Worktile 406k 1 1.2. Teambition  584k in baidu
    Atitit.每周末总结 于每周一计划日程表 流程表 v8 import 上周遗漏日志补充 检查话费 检查流量情况 Crm问候 Crm表total and 问候
  • 原文地址:https://www.cnblogs.com/langqi250/p/13641087.html
Copyright © 2011-2022 走看看