今天我们就来详细的盘点Python操作Excel神器:openpyxl
安装openpyxl
openpyxl是一个非标准的Python库,需要自行安装,Mac\Windows用户均可以在命令行或者终端中使用pip进行安装
pip install openpyxl
读取Excel
1.加载Excel
from openpyxl import load_workbook
workbook = load_workbook(filename='测试.xlsx’)
print(workbook.sheetnames)
注意:load_workbook只能打开已经存在的Excel文件,不能创建新的workbook
2.根据名称获得sheet工作表
from openpyxl import load_workbook
workbook = load_workbook(filename='其他.xlsx')
print(workbook.sheetnames)
sheet = workbook['工作业务']
只有一张工作表也可以使用:
sheet = workbook.active
3.获取表格内容所在的范围
print(sheet.dimensions)
4.获取某个单元格的具体值
提供两种方法,需要以cell.value形式输出单元格的具体值
5.获取某个cell单元格的行、列、坐标
print(cell.row, cell.column, cell.coordinate)
6.获取多个cell格子的值
这里也有一个细节,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 Workbook
workbook = 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)
有了上面的基础知识之后我们就能更快速的与办公自动化需求结合使用。
关于python学习:
在学习python中有任何困难不懂的可以微信扫描下方CSDN官方认证二维码加入python交流学习
多多交流问题,互帮互助,这里有不错的学习教程和开发工具。
(这里每天都会不定时更新python不同题型和教程,希望大家一起学习,一起进步)