Fork me on GitHub

python接口自动化系列 - openpyxl基本使用03

一、openpyxl简单介绍

  • 一个Python库,用于读取/写入Excel 2010  xlsx 、xlsm 、xltx 、xltm 文件
  • 不能操作 xls 文件
  • Workbook:excel工作表
  • Sheet:工作表中的一张表
  • Cell:其中的一个单元格
  • 简单步骤:打开Workbook,选中Sheet,操作Cell

二、读取xlsx

import openpyxl

path = './case/imooc.xlsx'
# 读取excel文件
workbook = openpyxl.load_workbook(path)

#方法一 读取所有sheet-已停止使用,使用会有警告
sheet = workbook.get_sheet_names()
# 获取某个sheet
sheet = workbook[sheet[0]]
# 获取某个cell的值
cell_val = sheet.cell(row=2, column=2).value
print(cell_val)

#方法二
sheetname = workbook.sheetnames[0]
print(sheetname)

print("A列:", sheet["A"])  # 读取A列
print("1行:", sheet["1"])  # 读取第1行
print("C4格的值:", sheet["C4"].value)  # 读取C4格的值
# 最大/最小行列数获取的是表中的数据区域
print("最大行数为:", sheet.max_row)  # 最大行数
print("最大列数为::", sheet.max_column)  # 最大列数
print("最小行数为:", sheet.min_row)  # 最小行数
print("最小列数为:", sheet.min_column)  # 最大列数
print("第一行第一列的单元格值为:",sheet.cell(row=1, column=1).value)  # 获取第一行第一列单元格的值
print("\n")
print("表中C列中所有值为:")
for i in sheet["C"]:
    print(i.value, end=" ")  # 读取C列中的所有值

print("\n")

print("表中2行中所有值为:")
for j in sheet["2"]:
    print(j.value)

返回结果:

注意:get_sheet_by_name()方法已经未使用了,继续使用会出现警告:DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]). 

三、写入xslx  

from openpyxl import workbook    #导入库
wb=workbook.Workbook()          #创建一个新工作表
sheet=wb.active                 #找到活动的sheet页
sheet.title='new sheet'         #空的excel表默认的sheet页就叫Sheet,如果想改名字,可以直接给title属性赋值
'''
这个属性是可读可写的。当然,这个只针对当前活动页,别的页的话,可以用create_sheet和remove_sheet进行添加和删除。
往sheet页里面写内容就比较简单了,跟读一样.
'''
sheet['C3']= 'Hello world!'
for i in range(10):
    sheet["A%d" % (i+1)].value=i+1
sheet["E1"].value= "=SUM(A:A)"   #我们还可以进行花式操作,比如写写公式:
wb.save('./case/new_excel.xlsx')  #最后记得保存

 执行结果:

 针对于已有的工作表进行写入:

from openpyxl import load_workbook
fp=load_workbook("./case/new_excel.xlsx")
sheet = fp["new sheet"]
sheet['c1'] = '新写入的内容'

fp.save("./case/new_excel.xlsx")

返回结果:  

 

 

 

posted @ 2023-01-04 21:17  橘子偏爱橙子  阅读(57)  评论(0编辑  收藏  举报