python Excel处理

Python

前言:

我是一个菜鸡,写文章是为了记录自己成长的过程,如有错误,请各位大佬轻喷,欢迎大家指正。基础知识不做赘述,下文介绍Excel办公自动化。

openpyxl导入

安装步骤 win+R 输入cmd
然后打出pip install openpyxl
测试方式 命令行输入python 如果没有报错 则安装成功

Python打开Excel文件_获取指定单元格内容

打开工作簿
load_workbook(文件名)
可以获取指定的工作表
workbook[sheet名称]
只有一个工作表的时候去使用
workbook.active
获取列表尺寸
sheet.dimensions
获取行
sheet.rows
获取列
sheet.columns
获取表格内的值
.value
.iter_rows(min_row = 最低行数 , max_row = 最高行数 , min_col = 最低行数 , max_col = 最高列数)

# 首先导入模块
import openpyxl
# 打开一个Excel表格
workbook = openpyxl.load_workbook('C:\\Users\\Dell\\Desktop\\demo01.xlsx')
# 查看excel表格中sheet的名字
print(workbook.sheetnames)
sheet = workbook.active
cell = sheet['A5']
print(cell.value)
# 获取一系列单元格
cells = sheet['A':'E']
for cell in cells:
    print(cell[2].value)

rows = sheet.iter_rows(min_row=1,max_row=5,min_col=1,max_col=4)
for row in rows:
    for cell in row:
        print(cell.value)

查询值所在位置,以及统计出现次数

# 首先导入模块
import openpyxl

# 打开一个Excel表格
workbook = openpyxl.load_workbook('C:\\Users\\Dell\\Desktop\\demo01.xlsx')
sheet = workbook.active
cols = sheet['I']
count = 0
for col in cols:
    if col.value == '商学院':  # 对比值是否相等
        count += 1
        print('I' + str(col.row))
        print('出现次数为' + count)

Python在Excel中修改数据

需要注意的是,每次修改时都需要关闭表格,否则报错
向某个格子写入内容
sheet[‘A1’] = ‘hello world’
用某个格子写入内容
cell = sheet[?]
cell.value = ‘hello,python’
使用python列表数据插入一行
sheet.append(python列表)
插入公式
直接输入公式内容
插入一列
.insert_cols(idx = 数字编号)
插入多列
.insert_cols(idx = 数字编号,ammount = 要插入的列数)
插入一行
.insert_rows(idx = 数字编号)
插入多行
.insert_rows(idx = 数字编号,amount = 要插入的行数)
删除列
.delete_cols(idx = 数字编号,amount = 要删除的列数)
删除除行
.delete_rows(idx = 数字编号,amount = 要删除的行数)
移动格子
.move_range('A3:B8,rows = 2,cols = -2)
正整数为向下或向右,负整数为向左或者向上
创建新的sheet
workbook.create_sheet(sheet名称)
删除一个sheet
workbook.remove(sheet实例)
复制一个sheet
workbook.copy_worksheet(sheet实例)
修改表格名称
sheet.title
冻结窗格 即保持某一行始终处在第一列
sheet.freeze_panes = ‘D2’
添加筛选
sheet.auto_filter.ref = sheet.dimensions

import openpyxl
workbook = openpyxl.Workbook() #创建一个新的工作簿,Excel文件
# 创建sheet工作表
sheet = workbook.create_sheet()
# 添加数据方法1
sheet['A1'] = 'hello,Python'
# 添加数据方法2
cell = sheet['A2']
cell.value = "Java"
# 保存数据
workbook.save('excel01.xlsx')

插入数据

import openpyxl
workbook = openpyxl.load_workbook('excel01.xlsx') # 打开新表
# 添加单行
sheet = workbook['Sheet1']
lst = ['姓名', '分数']
sheet.append(lst)
# 添加多行
stu_lst = [
    ['张三',89],
    ['李四',87],
    ['王五',93],
    ['陈六',85]
]
for row in stu_lst:
    sheet.append(row)
# 保存数据
workbook.save('excel01.xlsx')

插入公式

import openpyxl
workbook = openpyxl.load_workbook('excel01.xlsx') # 打开新表
# 直接输入公式
sheet = workbook['Sheet1']
sheet['B9'] = '=sum(B5:B8)'
# 保存数据
workbook.save('excel01.xlsx')

查询excel公式

from openpyxl.utils import FORMULAE
print(FORMULAE)

插入多列

import openpyxl
workbook = openpyxl.load_workbook('excel01.xlsx') # 打开新表
# 直接输入公式
sheet = workbook['Sheet1']
sheet.insert_rows(idx=3,amount=5)
# 保存数据
workbook.save('excel01.xlsx')

sheet相关操作

import openpyxl
workbook = openpyxl.load_workbook('excel01.xlsx') # 打开新表
# 创建sheet
workbook.create_sheet('mysheet')
# 删除sheet
sheet = workbook['mysheet']
workbook.remove(sheet)
# 复制工作表对象
sheet = workbook['mysheet']
workbook.copy_worksheet(sheet)
# 重命名
sheet.title = 'mysheet2'
print(workbook.sheetnames)
# 保存数据
workbook.save('excel01.xlsx')

查找保存数据

import openpyxl
workbook = openpyxl.load_workbook('C:\\Users\\Dell\\Desktop\\demo01.xlsx') # 打开新表
sheet = workbook['Sheet1']
rows = sheet.rows
lst = []
for row in rows:
    if row[8].value == '商学院':
        sub_lst = []
        for i in range(0,4):
            sub_lst.append(row[i].value)
        lst.append(sub_lst)
print(lst)
#存储到一个新的Excel文件中
new_workbook = openpyxl.Workbook()
new_sheet = new_workbook.active
for row in lst:
    new_sheet.append(row)

new_workbook.save('心协商学院花名册.xlsx')

操作Excel表格样式

修改字体样式
Font(name = 字体名字,size = 字体大小,bold = 是否加粗,italic = 是否斜体, color = 字体颜色)
获取表格中字体的样式
cell.font.属性
设置对齐样式
Alignment(horizontal = 水平对齐方式,vertical = 垂直对齐方式,text_rotaition = 旋转角度,wrap_text = 是否自动换行)

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

workbook = openpyxl.load_workbook('C:\\Users\\Dell\\Desktop\\demo01.xlsx')  # 打开新表
sheet = workbook['Sheet1']
cell = sheet['C5']
# 修改单元格样式
font = Font(name='微软雅黑', size=20, bold=True, italic=True, color='ff0000')
cell.font = font
# 获取单元格样式
font = cell.font
print(font.name, font.size, font.bold, font.color)
# 设置对齐格式
algin = Alignment(horizontal='center', vertical='center')
cell.alignment = algin
# 设置线的样式
side = Side(style='thin', color='ff0000')
border = Border(left=side, top=side, right=side, bottom=side)
cell.border = border
workbook.save('C:\\Users\\Dell\\Desktop\\demo01.xlsx')

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值