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

自动化测试学习-Day3-使用python *** 作excel(超详细),第1张

本文介绍使用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对比如下: 

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/786793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存