openpyxl的简单使用。

一、增删相关

1、创建新工作簿

import openpyxl
#创建一个新的工作簿
wb = openpyxl.WOrkbook()
#拿到工作的工作表,新创建的工作簿,默认有sheet工作表,且是该表是激活的
ws=wb.active
#给工作表设置名字,这里是将sheet工作表名字设置成语文成绩
ws.title = '语文成绩'
#保存
wb.save('新的工作簿.xlsx')

2、创建新的工作表

import openpyxl 
#读取存在的工作簿
wb = openpyxl.load_workbook('有基础资料和库存.xlsx')
#创建新的工作表
wb.create_sheet(title='新的工作表')
#保存
wb.save('有基础资料和库存.xlsx')

3、插入新的空白行或空白列

3.1、插入空白行

import openpyxl
#读取存在的工作簿
wb = openpyxl.load_workbook('有基础资料和库存.xlsx')
#通过工作表名字拿到要操作的工作表
ws = wb['库存']
#idx是行号,在idx处插入count个空白行
ws.insert_rows( idx ,count=1 )
wb.save('有基础资料和库存.xlsx')

3.2、插入空白列

import openpyxl
#读取存在的工作簿
wb = openpyxl.load_workbook('有基础资料和库存.xlsx')
#通过工作表名字拿到要操作的工作表
ws = wb['库存']
#idx是列号,在idx处插入count个空白列
ws.insert_cols( idx ,count=1 )
wb.save('有基础资料和库存.xlsx')

4、删除行和列

4.1、删除列

import openpyxl
#读取存在的工作簿
wb = openpyxl.load_workbook('有基础资料和库存.xlsx')
#通过工作表名字拿到要操作的工作表
ws = wb['库存']
#idx是列号,在idx列往后删除count个列(包括idx所在列)
ws.delete_cols( idx ,count=1 )
wb.save('有基础资料和库存.xlsx')

4.2、删除行

import openpyxl
#读取存在的工作簿
wb = openpyxl.load_workbook('有基础资料和库存.xlsx')
#通过工作表名字拿到要操作的工作表
ws = wb['库存']
#idx是列号,在idx处往下count个行(包括idx行)
ws.delete_rows( idx ,count=1 )
wb.save('有基础资料和库存.xlsx')

5、批量增数据

ws.append([1,2,3])
#在最后一行插入数据 1,2,3

ws.append({1:'lhz',2:'zzh',3:'yf'})
#最后一行的第1列写入数据 lhz
#最后一行的第2列写入数据 zzh
#最后一行的第3列写入数据 yf

ws.append({'a':'hh','b':'juju','f':'我来了'})
#最后一行的a列写入数据 hh
#最后一行的b列写入数据 juju
#最后一行的f列写入数据 我来了

列不能是数字和字母混着写。

二、查改相关

1、查

1.1、查基本信息

工作簿属性:

import openpyxl

wb = openpyxl.load_workbook('test.xlsx')
#1\获取到工作簿的所有工作表的名字,返回的是工作表名字列表
ws_name = wb.sheetnames
#2\获取工作簿中所有工作簿对象,返回的是工作表对象列表
ws_obj=wb.worksheets

#拿到具体的工作表对象
ws_active = wb.active #拿到激活的工作表,如果工作簿只有一张工作表,推荐使用
ws1 = wb['工作表名字'] #通过工作表名字获取工作表对象
ws2 = wb.worksheets[0] #通过索引获取工作表对象

工作表属性:

工作表行列情况

import openpyxl
wb = openpyxl.load_workbook('test.xlsx')
ws = wb['运维']
#获取工作表的最大行数
max_row = ws.max_row
#获取工作表的最小行数
min_row = ws.min_row
#获取工作表的最大列数
max_col = ws.max_column
#获取工作表的最小列数
min_col = ws.min_column

单元格遍历:

import openpyxl
wb = openpyxl.load_workbook('test.xlsx')
ws = wb['语文成绩']
1、data_iter = ws.values: 结果是生成器,一次next获取一行数据,不是一行单元格对象
    
2、row_iter = ws.rows :结果是生成器,一次next获取一行单元格对象,需要循环next出来的行,cell.value拿到单元格的数据
    
3、col_iter = ws.columns :结果是生成器,一次next获取一列单元格对象,需要循环next出来的列,通过cell.value拿到单元格的数据
    
4、ws.iter_rows: 可以指定区域,一次next获取指定区域的一行
    for  rows in ws.iter_rows(min_col=1,max_col=3,min_row=1,max_row=10):
        lis=[ c.value for c in rows]
    #c是单元格对象,c.value才是单元格对应的数据

5、ws.iter_cols: 可以指定区域,一次next获取指定区域的一列
    for  cols in ws.iter_cols(min_col=1,max_col=3,min_row=1,max_row=10):
        lis=[ c.value for c in cols]
    #c是单元格对象,c.value才是单元格对应的数据
 

单元格属性:

1、ws.cell(column=2,row=9).column_letter  :  输出列字母号:B

2、ws.cell(column=2,row=9).coordinate  输出单元格的键:B9

3、ws.cell(column=2,row=9).col_idx   输出的是单元格的列号是数字,2

4、ws['A4'].row  拿到的行

5、ws['A7'].column  拿到列号

6、ws['B7'].value 拿到数值  

根据数字获取列的字母

from openpyxl.utils import get_column_letter, column_index_from_string
# 根据列的数字返回字母
print``(get_column_letter(``2``)) ``# B
# 根据字母返回列的数字
print``(column_index_from_string(``'D'``)) ``# 4

2、改

修改数据:

A1表示法  工作表['A1'] 工作表.cell(行号,列号)
月份   金额
1       100
2        200
3        300
4        400
总金额   
将总金额求出来,放到对应框中


通过ws.iter_cols() :min_row=2,最小开始行,max_col和min_col=2说明的是去第2列,max_row 是最大行高
import openpyxl
wb = openpyxl.load_workbook('业绩.xlsx')
ws = wb['demo']
sh =  list(ws.iter_cols(min_row=2,max_col=2,min_col=2,max_row=ws.max_row-1))[0]
sh_value = sum([i.value for i in sh])
#修改方式1
ws[f'B{ws.max_row}']=sh_value
#修改方式2
ws.cell(row=行,column=列,value='值')
wb.save('业绩.xlsx')

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
openpyxl是一个用于处理Excel文件的Python库,可以用于读取、修改和创建Excel文件。下面是一个简单使用openpyxl的示例代码: 安装openpyxl: ```python pip install openpyxl ``` 读取Excel文件: ```python import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('example.xlsx') # 获取所有工作表名称 sheet_names = workbook.sheetnames print(sheet_names) # 获取第一个工作表 sheet = workbook[sheet_names[0]] # 获取单元格的值 cell_value = sheet['A1'].value print(cell_value) # 获取整个工作表的值,返回一个二维列表 table_values = [] for row in sheet.rows: row_values = [] for cell in row: row_values.append(cell.value) table_values.append(row_values) print(table_values) ``` 修改Excel文件: ```python import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('example.xlsx') # 获取第一个工作表 sheet = workbook.worksheets[0] # 修改单元格的值 sheet['A1'] = 'New Value' # 保存修改后的Excel文件 workbook.save('example.xlsx') ``` 创建Excel文件: ```python import openpyxl # 创建一个新的Excel文件 workbook = openpyxl.Workbook() # 创建一个新的工作表 sheet = workbook.active # 设置工作表的名称 sheet.title = 'Sheet1' # 向工作表中写入数据 sheet['A1'] = 'Hello' sheet['B1'] = 'World' # 保存Excel文件 workbook.save('example.xlsx') ``` 更多详细的使用方法和示例可以参考openpyxl官方文档:https://openpyxl.readthedocs.io/en/stable/

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值