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")
返回结果:

本文来自博客园,作者:橘子偏爱橙子,转载请注明原文链接:https://www.cnblogs.com/xfbk/p/17024988.html

浙公网安备 33010602011771号