Python excel文件操作之openpyxl

560 阅读4分钟

「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战

前言

众所周知,计算机文件是我们每天都要使用到的。通常对文件按照性质和用途进行分类的话主要分为系统文件、用户文件和库文件。如果按照文件的保存期限,文件会分为临时文件和永久性文件。 在Python 文件管理浅析中,按照文件数据流组织形式文件主要分为文本文件和二进制文件两大类。

  • 文本文件:以字符形式存储,常见的就是我们使用的记事本,.txt结尾,默认为unicode字符集
  • 二进制文件:以字节的形式存储,我们常见world、Excel、mp4、MP3等文件

Excel表格,我们日常办公都会使用到,小到个人代办事项记录、大到存储项目数据等,Excel对于研发测试项目中,我们可以提前写好测试数据、测试case等,更好地在后续脚本进行使用。

强大的Python,不仅提供内置的cvs模块对.cvs表格文件处理,还支持接入第三方Excel操作库

image.png 参考资料:www.cnblogs.com/zcg-cpdd/p/…

本期,我们将学习Excel文件操作的Openpyxl库相关方法的学习,Let's go~

1. openpyxl概述

  • 什么是openpyxl

    openpyxl 是对Excel xlsx/xlsm/xltx/xltm文件进行读写操作的第三方Python库。

    openpyxl 模块最初是基于PHPExcel,用来弥补Python无法对Office XML格式打开读写操作而诞生的。

    openpyxl 模块在默认情况下,不会防范quadratic blowup 和 billion laughs xml攻击。如需要防范,则要安装defusedxml模块

    openpyxl 模块是开源库,目前最新更新到3.0.9版本,由Octobus和Clever Cloud提供。

  • Excel文档结构

    openpyxl模块对Excel进行操作时,我们要先对Excel结构进行熟悉,目前有6部分组成。

    1. workbook:工作簿。通常一个Excel文件就是一个工作簿,里面以包含N张工作表
    2. sheet: 工作表。工作簿里每一页就是一张工作表,每张表的名字默认以sheet与数字结合的形式如sheet1\sheet2等
    3. active sheet: 活动表,当前正在操作的工作表
    4. row: 行,工作表中每一行行首数字为行标题,一张工作表最多有65536行
    5. column: 列。工作表中每一列列首字母为列标题,一张工作表最多有256列
    6. cell: 工作表的每一个格成为单元格
  • openpyxl 使用

    由于openpyxl是第三方库,我们在使用前使用pip进行下载

    pip install openpyxl
    

2. Excel操作流程

我们在日常办公中,对Excel文件操作通常有四个步骤如图所示

image.png

  1. 创建工作簿(Excel文件)
  2. 创建工作表格:根据实际情况,创建多张工作表,并重名表格名字(可选)
  3. 编辑活动表格:选中需要编辑的工作表,对其单元格进行编辑操作
  4. 保存.xlsx格式的Excel文件

我们使用openpyxl模块转换以上步骤Demo代码如下:

import openpyxl
import numpy as np


# 创建工作簿

wb = openpyxl.Workbook()

# 创建工作表格

sheet = wb.create_sheet(index=0,title="test")

# 编辑指定的单元格

for row in range(10):
    
    for col in range(10):
        
        value = np.random(100)
        
        sheet.cell(row,col).value = value
        
# 保存Excel表格命名为test

wb.save("test")

3. openpyxl常用方法/库

openpyxl 模块提供对Excel表格样式、读写多种方法。

  • 表格操作相关的方法

    方法说明
    wb.insert_rows(n)插入行,可以指定第几行
    wb.delete_cols(r,c)删除第几行第几列
    wb.move_range("workArea",rows,cols)将指定的范围的单元格向上移动第N,向右移动第N
  • 表格样式相关的库

    样式有两种,分为单元格样式和命名样式

    • 单元格样式在对象之间共享,一旦指定,就无法修改
    • 命名样式是可变的

    openpyxl 提供对表格样式进行设置,使用时需要导入openpyxl.styles模块

    openpyxl 样式应用可以在如下几方面:

    • font: 设置字体大小、颜色、下划线等
    • Patternfill: 填充设置图案或者颜色的渐变
    • Border: 设置单元格边框
    • Alignment: 单元格对齐
    • Protection: 保护
    from openpyxl.styles import Patternfill,Border,Side,Alignment,Protection,Font
    
  • 图表相关的操作库

    openpyxl 支持在Excel 工作表上绘制图表,需要导入openpyxl.chart库

    支持对图表进行更改布局、编辑轴、样式表、高级图表等操作。

    • LineChart:折线图

    • Scatter:散点图

    • Bar:柱状图

    • Pie: 饼图

    • Radar:雷达图

    • Stock:股票图表

    • Surface:曲面图

总结

本次,对Excel表格操作的第三方库openpyxl模块对Excel表格操作流程进行学习,以及对常用到的库的知识点进行了解。

以上是本期内容,欢迎大佬们点赞评论,下期见~~