openpyxl操作Excel

本文介绍了如何使用Python库Openpyxl进行Excel文件的读取、写入和格式修改。内容包括安装Openpyxl,理解Excel的工作簿、工作表和单元格概念,以及读取单元格内容、获取最大行数和列数的方法。此外,还展示了创建新工作表、删除工作表、修改单元格内容和设置单元格样式(如字体、填充和边框)的步骤。
部署运行你感兴趣的模型镜像

1.Openpyxl

1.安装第三方库

# pip 安装
pip install openpyx

2.Excel基本概念

1.工作簿(workbook):Excel文件
2.工作表(sheet):工作簿的基本单位,每个工作簿至少要有一个工作表
3.单元格(cell):工作表中每个用来保存数据的格子叫单元格
4.行、行号(row):每一行前面的数字(从1开始)
5.列、列号(column):每一列上面的大写字母(也可以用数字)

3.读操作

# 1.打开一个工作簿文件
wb = openpyxl.open("fifles/example.xlsx")
wb = openpyxl.load_workbook('fifles/example.xlsx')
# 2.获取工作簿中所有的工作表的名字
# 获取工作簿对象.sheetnames
names = wb.sheetnames

# 3.获取工作表
# 获取当前工作簿中的活跃表 获取工作簿对象 .active
sheet1 = wb.active
# 4.获取当前工作簿中制定表明对应的表 获取工作簿对象[表的名字]
# sheet2 = wb['表一']

# 5.获取保存数据的最大行数和列数
# 获取最大行数 工作表.max_row
m_r = sheet1.max_row
# 获取最大列数 工作表.max_column
m_c = sheet1.max_column

# 6.获取单元格
# 工作表.cell(行号,列号)
cell1 = sheet1.cell(2, 1)

# 7.获取单元格中的内容
# 单元格.value
v1 = cell1.value
# 练习
# 获取第二行所有内容
new_list = []
for i in range(1, m_r + 1):
    cell2 = sheet1.cell(i, 2).value
    new_list.append(cell2)
print(new_list)
# 获取第二列所有内容
pai_list = {}
for x in range(1, m_r + 1):
    key = sheet1.cell(1, x).value
    value1 = sheet1.cell(2, x).value
    pai_list[key] = value1
print(pai_list)
# 获取整个文件的数据
for count in range(2, m_r + 1):
    pai_list = {}
    for cum in range(1, m_c + 1):
        key1 = sheet1.cell(1, cum).value
        value2 = sheet1.cell(count, cum).value
        pai_list[key1] = value2
    new_list.append(pai_list)
print(new_list)

3.写操作

# 写操作
import openpyxl
import os

# 1.新建Excel文件(新建工作bu)(写操作只有再保存之后生效)
# 判断指定的文件或文件jia是否存在os.path.exists(文件或者文件夹路径)
if os.path.exists('fifles/example2.xlsx'):
    wb = openpyxl.open('fifles/example2.xlsx')
else:
    wb = openpyxl.Workbook()
    wb.save('fifles/example2.xlsx')
# 2.保存文件(可以做一步就保存一次,也可以最后在保存)
wb.save('fifles/example2.xlsx')
# 3.新建工作表
# 工作簿对象。create_sheet(表名,下标)    表名相同,表名加一
sheet1 = wb.create_sheet()
sheet2 = wb.create_sheet('student')
# 如果不存在就创建这个表,否则就获取这个表
if 'teacher' in wb.sheetnames:
    sheet2 = wb['teacher']
else:
    sheet2 = wb.create_sheet('student')


4.删除操作

# 表删除操作
# 工作簿.remove(工作表)
# 注意,如果要删除的表不存在,就会报错,所以要添加判断操作
if 'teacher' in wb.sheetnames:
    wb.remove(wb['student'])

5.单元格内容修改

# 单元格.value=新数值
sheet2.cell(2, 1).value = 'xiaoming'
wb.save('fifles/example2.xlsx')

6.修改样式

import openpyxl
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment

# 打开Excel文件创建工作簿
wb = openpyxl.open('files/example.xlsx')
# 获取工作表
sheet1 = wb['表1']

# 1.设置行高和列宽
# a. 工作表.row_dimensions[行号].height = 高度
# b. 工作表.column_dimensions[列号].width = 宽度

# 设置第一行的高度为40
sheet1.row_dimensions[1].height = 40
# 设置A列的宽度为20
sheet1.column_dimensions['A'].width = 20

# 2.设置单元格字体样式
# 1)创建字体对象
font1 = Font(
    # 字体名称
    name='黑体',
    # 是否添加删除线
    # strike=True,
    # 文字颜色
    color='643850',
    # 设置字体大小
    size=15,
    # 是否加粗
    # bold=True,
    # 是否倾斜
    # italic=True,
    # 添加下划线:  'singleAccounting', 'double', 'single', 'doubleAccounting'
    # underline='double'
)
# 2)设置单元格字体(设置第2行第2列的字体)
sheet1.cell(2, 2).font = font1

# 3.设置填充样式
# 1)创建填充对象
fill1 = PatternFill(
    # 设置填充方式:'lightGray', 'solid', 'darkUp', 'gray0625', 'lightDown', 'lightGrid', 'mediumGray', 'darkGray', 'darkGrid', 'darkHorizontal', 'darkDown', 'lightHorizontal', 'darkTrellis', 'darkVertical', 'lightTrellis', 'lightVertical', 'lightUp', 'gray125
    fill_type='solid',
    # 起始颜色:fill_type为solid的时候只有起始颜色有效
    start_color='FAFAD2',
    # 结束颜色
    end_color='FF7F50'
)

# 2)设置单元格填充样式
sheet1.cell(1, 1).fill = fill1

# 4.设置单元格对齐方式
ag1 = Alignment(
    # 垂直对齐方式:center、top、bottom
    vertical='center',
    # 水平对齐方式:center、letf、right
    horizontal='center'
)
sheet1.cell(1, 2).alignment = ag1

# 5.设置边框样式
# 1)创建边对象
side1 = Side(
    # 'dashDot', 'dotted', 'thin', 'double', 'medium', 'thick', 'dashed', 'mediumDashDot', 'slantDashDot', 'mediumDashed', 'mediumDashDotDot', 'hair', 'dashDotDot'
    border_style='medium',
    color='800080'
)

side2 = Side(
    border_style='mediumDashed',
    color='ff0000'
)

# 2)创建边框
border1 = Border(bottom=side1, top=side1, left=side2, right=side2)

# 3)设置单元格边框样式
sheet1.cell(2, 4).border = border1

# 保存文件
wb.save('files/example.xlsx')

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值