Python | Excel表操作库

网友投稿 996 2022-11-12

Python | Excel表操作库

Python | Excel表操作库

openpyxl是一个开源项目,openpyxl模块是一个读写Excel 2010文档及之后版本的Python库,如果要处理更早格式的Excel文档,需要用到其它库(如:xlrd、xlwt等),这是openpyxl比较其他模块的不足之处。openpyxl是一款比较综合的工具,不仅能够同时读取和修改Excel文档,而且可以对Excel文件内单元格进行详细设置,包括单元格样式等内容,甚至还支持图表插入、打印设置等内容,使用openpyxl可以读写xltm, xltx, xlsm, xlsx等类型的文件,且可以处理数据量较大的Excel文件,跨平台处理大量数据是其它模块没法相比的。因此,openpyxl成为处理Excel复杂问题的首选库函数。

前言

openpyxl是一个开源项目,openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到其它库(如:xlrd、xlwt等),这是openpyxl比较其他模块的不足之处。openpyxl是一款比较综合的工具,不仅能够同时读取和修改Excel文档,而且可以对Excel文件内单元格进行详细设置,包括单元格样式等内容,甚至还支持图表插入、打印设置等内容,使用openpyxl可以读写xltm, xltx, xlsm, xlsx等类型的文件,且可以处理数据量较大的Excel文件,跨平台处理大量数据是其它模块没法相比的。因此,openpyxl成为处理Excel复杂问题的首选库函数。

在使用openpyxl前先要掌握三个对象,即:Workbook(工作簿,一个包含多个Sheet的Excel文件)、Worksheet(工作表,一个Workbook有多个Worksheet,表名识别,如“Sheet1”,“Sheet2”等)、Cell(单元格,存储具体的数据对象)三个对象。

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

安装

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

pip install openpyxl

前置知识

在使用这个模块之前我们需要对Excel表格结构有个比较细致的了解,见下图:

简而言之,一个Excel工作簿​​workbook​​​由一个或者多个工作表​​sheet​​​组成,一个sheet可以看作是多个行​​row​​​组成,也可以看作是多个列​​column​​​组成,而每一行每一列都由多个单元格​​cell​​组成!

读取Excel

1.载入Excel

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

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

2.根据名称获取工作表

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

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

sheet = workbook.active

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

print(sheet.dimensions)

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

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

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

print(cell.row, cell.column, cell.coordinate)

6.获取多个格子的值

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

for cell in cells: print(cell.value)

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

7.读取所有的行

for row in sheet.rows: print(row)

Excel写入

1. 保存Excel

workbook.save(filename='Excel工作表1.xlsx')

如果读取和写入Excel的路径相同则为对原文件进行修改,如果读取和写入Excel的路径不同则为保存成新的文件

2.写入单元格

cell = sheet['A1'] cell.value = '业务需求

3.写入一行或多行数据

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

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

5.插入一行或多行

6. 插入一列或多列

7.删除多行

8.删除多列

9. 移动范围数据

10. 创建新的Excel表格

from openpyxl import Workbookworkbook = Workbook()

Excel样式调整

1. 设置字体样式

2. 设置对齐样式

水平对齐:​​distributed, justify, center, left, fill, centerContinuous, right, general​​垂直对齐:​​bottom, distributed, justify, center, top​​

3. 设置边框样式

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

4. 设置单元格填充样式

5. 设置行高和列宽

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

6. 单元格合并与取消

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

注:文章内容来源于网络,用于笔记收藏,若有侵权或不当之处还请谅解

箴言:因为这些东西是非常简单的。不要抱怨自己学不会,那是因为你没有足够用心。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:QGIS中WKT转为可视化涂层
下一篇:latex入门 —— TeXstudio笔记
相关文章

 发表评论

暂时没有评论,来抢沙发吧~