Python读取Excel表格

Python读取Excel表格

  • 准备工作
  • 了解几个常用概念
  • Python读取Excel
  • 获取表单的最大行数、最大列数
  • 列对应的数字和字符转换

前言:需要进行自动化办公或者自动化测试的朋友,可以了解下此文,掌握Python读取Excel表格的方法。

准备工作

1、安装Python3.7.0(官网下载安装包)

2、安装Pycharm(官网下载安装包)

3、安装openpyxl

命令行窗口执行: pip install openpyxl ,出现Successfully installed表示安装成功。

Python读取Excel表格_第1张图片
4、准备一份Excel表格,绝对路径:D:\zxt\test_data.xlsx , test_data.xlsx内容如下:

Python读取Excel表格_第2张图片

了解几个常用概念

workbook 工作簿

worksheet 表单

row 行

column 列

cell 单元格

active 活跃的表单(即:正打开使用的表格)

index 索引 (注意:Excel中的索引值是从1开始!!!

Python读取Excel

import openpyxl
# 一、打开工作簿
wb = openpyxl.load_workbook(r"D:\zxt\test_data.xlsx", read_only=False)

# 二、从工作簿中获取表单
# 1.遍历表单名称
for sheet in wb:
    print(sheet.title)

print(wb.sheetnames)  # 结果是一个列表

# 2.获取表单对象
mySheet = wb.create_sheet('表单4')
print(wb.sheetnames)
sheet4 = wb['表单4']  # 通过表单名获取,注意这里使用方括号

# 三、从表单中取出单元格,并打印单元格的行、列、值
ws = wb.active  # 取出活跃的表单
print(ws)  # 打印表单
print(ws['A1'])  # 打印A1单元格
print(ws['A1'].value)  # 打印A1单元格的值

# 1.打印B2单元格的行、列、值
c = ws['B2']
print("B2单元格的行数是{0},列数是{1},值是{2}".format(c.row, c.column, c.value))
print("单元格{0}的值是{1}".format(c.coordinate, c.value))  # c.coordinate表示获取单元格的坐标

# 2.还可以通过指定单元格的行、列索引值,来获取单元格的值
print(ws.cell(row=2, column=2).value)

for i in range(2, 8, 2):
    print(ws.cell(row=i, column=2).value)

for j in range(1, 3):
    print(ws.cell(row=2, column=j).value)

# 3.根据指定的行、列范围打印单元格的值
row6 = ws[6]
print(row6)
columnB = ws['B']
print(columnB)
row_range = ws[1:8]  # 采用切片的方法获取行的范围
column_range = ws['A:C']
column_index = range(1, 4)

# 利用for循环遍历单元格的值
# 方法1.先取出每一行,再取出每一行中的每一个单元格来获取值
for row in row_range:
    for cell in row:
        print(cell.value)

# 方法2.先取出每一列,再取出每一列中的每一个单元格来获取值
for col in column_range:
    for cell in col:
        print(cell.value)

# 方法3.通过生成器打印指定矩形区域单元格的值
# 说明:使用iter_rows()和iter_cols()方法更加灵活,可以指定单元格的行、列范围,返回的是一个生成器。
for row in ws.iter_rows(min_row=1, max_row=8, min_col=1, max_col=2):
    for cell in row:
        print(cell.value)

for col in ws.iter_cols(min_col=1, max_col=2, min_row=1, max_row=8):
    for cell in col:
        print(cell.value)

# 方法4.按照单元格的范围(矩形)区域打印单元格的值
# 先给出单元格的范围,然后按行取打印每个单元格的值
cell_range = ws['A1:B8']
for rowOfCellObject in cell_range:
    for cellObj in rowOfCellObject:
        print(cellObj.coordinate, cellObj.value)

获取表单的最大行数、最大列数

print("表单1是:{0}*{1}的表格".format(ws.max_row, ws.max_column))

列对应的数字和字符转换

# 说明:使用这个转换功能,我们需要先导入2个模块
from openpyxl.utils import get_column_letter, column_index_from_string
print(get_column_letter(2), get_column_letter(20), get_column_letter(47))
print(column_index_from_string('AU'), column_index_from_string('AHH'))

最后,感谢您的阅读。您的每个点赞、留言、分享都是对我们最大的鼓励,笔芯~

如有疑问,欢迎在评论区一起讨论!

如有不正确的地方,欢迎指导!

你可能感兴趣的:(python,基础入门,基础,python,pycharm,开发语言,数据分析)