栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

自动化测试学习-Day3-使用python操作excel(超详细)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

自动化测试学习-Day3-使用python操作excel(超详细)

本文介绍使用openpyxl操作excel。操作excel的库有多个,具体的优缺点比较在文末。

1.创建excel文件

file = Workbook()

2.对已存在文件进行操作 

# 文件路径
xlsx_path= 'test.xlsx'
#openpyxl读取xlsx文件
file=openpyxl.load_workbook(xlsx_path)

3.获取工作表 

#active方法默认获取工作簿的第一张工作表
sheet=file.active
#通过工作表名获取指定工作表
sheet=file["Sheet1"]

4.对单元格进行操作 

# 写入单元格
cell = sheet['A1']
cell.value = '家庭理财管理系统'

5.写入一行或多行数据

#写入1行数据
data1 = ["系统管理员", "","","家庭管理员","","", "普通用户"]
sheet.append(data1)
#写入多行数据
data2 = [["收支管理","","账务总览","","统计报表","","用户管理"], ["收入管理", "支出管理", "活期资产","负债资产","理财详情","产品推荐","角色管理","家庭成员管理"]]
for data in data2:
    sheet.append(data)

6.指定范围输出

# 指定坐标范围的值
rows = sheet['A1:B2']
print("坐标范围:")
for row in rows:
    for cell in row:
        print(cell.value,end=' ')
print()

7.按列输出 

print("指定列:")
cells = sheet['A']
for cell in cells:
    print(cell.value,end=' ')
print()

print("指定列范围:")
cols = sheet['A:B']
for col in cols:
    for cell in col:
        print(cell.value,end=' ')
print()

8.按行输出 

print("指定行:")
cells = sheet[1]
for cell in cells:
    print(cell.value,end=' ')
print()

print("指定行范围:")
rows = sheet[1:2]
for row in rows:
    for cell in row:
        print(cell.value,end=' ')
print()

 

9.样式 

# 字体样式
cells = sheet['1']
font = Font(
    name='Bradley Hand ITC', #字体名字
    size=12,#字体大小
    bold=True,#是否加粗
    italic=False,#斜体
    underline='none',#下划线
    color='0000FF'#字体颜色
    )
for cell in cells:
    cell.font = font

# 段落对齐
rows = sheet[1:2]
alignment = Alignment(
    horizontal='center',#水平
    vertical='center',#垂直
    text_rotation=0,#旋转角度
    wrap_text=True#是否自动换行
)
for row in rows:
    for cell in row:
        cell.alignment = alignment

# 边框样式
cells = sheet['4']
#style 参数的种类: 'double, 'mediumDashDotDot', 'slantDashDot',
#'dashDotDot','dotted','hair', 'mediumDashed, 'dashed', 'dashDot', 'thin',
#'mediumDashDot','medium', 'thick'

side1 = Side(
    style='thin', #边框样式
    color='0000FF'#边框颜色
)
side2 = Side(
    style='thick', #边框样式
    color='0000FF'#边框颜色
)

border = Border(
    left=side1, #左边线样式
    right=side1,#右边线样式
    top=side2, #上边线样式
    bottom=side2#下边线样式
)
for cell in cells:
    cell.border = border

# 填充颜色
pattern_fill = PatternFill(
    fill_type="solid",#填充样式
    fgColor="99CCFF"#填充颜色
)
gradient_fill = GradientFill(stop=("FFFFFF","99CCFF","000000"))#渐变颜色1,2,3...
rows=sheet[2:4]
for row in rows:
    for cell in row:
        cell.fill = pattern_fill
cells=sheet[1]
for cell in cells:
    cell.fill = gradient_fill

#设置行高和列宽
# 设置第 1 行的高度
sheet.row_dimensions[1].height = 50
# 设置 h4 的宽度
sheet.column_dimensions["H"].width = 13
#合并与取消合并单元格
#sheet.merge_cells("A1:H1")
sheet.merge_cells(start_row=1,#起始行号
                  start_column=1,#起始列号
                  end_row=1,#结束行号
                  end_column=8#结束列号
                  )
sheet.merge_cells(start_row=2,#起始行号
                  start_column=1,#起始列号
                  end_row=2,#结束行号
                  end_column=3#结束列号
                  )
sheet.merge_cells(start_row=2,#起始行号
                  start_column=4,#起始列号
                  end_row=2,#结束行号
                  end_column=6#结束列号
                  )
sheet.merge_cells(start_row=2,#起始行号
                  start_column=7,#起始列号
                  end_row=2,#结束行号
                  end_column=8#结束列号
                  )
#取消合并 unmerge_cells()

10.保存文件 

file.save('practice.xlsx')

效果如下图: 

 不同模块操作excel对比如下: 

本人小白一枚,欢迎大家一起探讨,有问题评论区留言哦! 

创作不易,喜欢的给个赞呗!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841099.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号