用python openpyxl模块操作excel

导入load_workbook库

from openpyxl import load_workbook

 

第一步:打开excel

workbook1=load_workbook('test_case.xlsx')

 

第二步:定位表单(test_data)

sheet=workbook1['test_data']

第三步:操作excel的test_data表单

1、定位单元格(cell),根据行列读取测试数据

data=sheet.cell(3,2).value
print(data)

 

特殊说明:

定位C2单元格数据{'mobilephone':'13502288210','pwd':'123456'}

data=sheet.cell(2,3).value        

查看C2单元格数据类型为,但实际为dict类型

print(type(data))            输出str

将str类型转化为他原来的类型dict:eval(data)                  

print(type(eval(data)))   输出dict

综上可得:

  • excel 存储的数据,数字还是数字:int—>int、 float—>float 、其他类型—>str
  • 使用eval(数据) 将str类型转换为他原来的类型

 

2、定位单元格(cell),根据行列值,更改原有的数据、写入新的测试数据,
sheet.cell(3,2).value='妮妮'          #更改已经存在的测试数据
sheet.cell(6,3).value='小小'          #在空的单元格写入新的测试值
workbook1.save('test_case.xlsx') #保存修改

 

3、统计行和列(参考上图)

max_row=sheet.max_row
max_cow = sheet.max_column
print('最大的行值:',max_row)    #输出6
print('最大的列值:',max_cow)   #输出7

import openpyxl.styles
# 新建sheet表
wb.create_sheet(index=2, title="sheet3") # 可通过index控制创建的表的位置
#ws1 = wb.create_sheet() #默认插在最后
#ws2 = wb.create_sheet(0) #插在开头 ,
# 根据表名删除sheet表
wb.remove(wb[sheet_names[2]]) # 删除上一步建的第3个工作表

A1_row = sheet1['A1'].row  # 获取单元格A1行号 结果: 1

# 获取C列的所有数据
list_sheet1_column_C = []
for i in sheet1["C"]:
  list_sheet1_column_C.append(i.value)
# 获取第1行的所有数据
list_sheet1_row_1 = []
for i in sheet1[1]:
  list_sheet1_row_1.append(i.value)
# 读取所有数据
list_sheet1_all = []
for row in sheet1.rows:
  for cell in row:
    list_sheet1_all.append(cell.value) # 按行循环获取所有的值,保存在 list_sheet1_all 列表中


# 表格样式调整
# ------------------ 表格样式调整 ------------------
# 表格样式支持:字体、颜色、模式、边框、数字格式等
# A1单元格 等线24号加粗斜体,字体颜色浅蓝色
sheet1["B11"].font = openpyxl.styles.Font(name="宋体", size=24, italic=True, color="00CCFF", bold=True)
# B1单元格 水平上下居中
sheet1["B11"].alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center")
# 第一行高度设置为30
sheet1.row_dimensions[1].height = 30
# C列的宽度设置为35
sheet1.column_dimensions["C"].width = 35





# 对行进行遍历,输出A1,B1,C1
for row in sheet.rows:
    for cell in row:
        print(cell.value)

# 对列进行遍历,输出A1,A2,A3
for column in sheet.columns:
    for cell in column:
        print(cell.value)

# 对某一特定的行进行遍历
for cell in list(sheet.rows)[0]:
    print(cell.value)

# 对某一单元格范围进行遍历
for spaces in sheet['A1':'B2']:
    for cell in spaces:
        print(cell.value)



# 写入一行
row = [1 ,2, 3, 4, 5]
sheet.append(row)

# 写入多行
rows = [
    ['ID', 'Name', 'Department'],
    ['001', 'Lee','CS'],
    ['002', 'John','MA'],
    ['003', 'Amy','IS']
]
sheet.append(rows)

从excel中读取测试用例:

 read_case

--------------------------------------------------------------------------- 分隔符 --------------------------------------------------------------------

#python 写入excel
from openpyxl import Workbook
wb = Workbook()
sheet = wb.active
sheet.title = 'New sheet'#定义sheet的标题,下面的sheet名字
sheet['C3'] = 'hello'#C列,第三行,写入hello
for i in range(10):
    sheet['A%d' %(i+1)].value = i+1#循环遍历0到9,然后i+1 就是1到10,这句话表示A1-A10,写入1-10
sheet['E1'].value = '=SUM(A:A)'#在E1写入A列所有数据的和
wb.save('保存一个新的excel.xlsx')#保存到一个新的excel

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值