前言

        在使用Python处理表格时,pandas 和 openpyxl是使用最多的两个库。现在我来简单记录一下这两个库在处理Excel表格时一些常用操作。

1、使用pandas操作excel表格

        (1)读取指定单元格

# 导入pandas库,简写为pd
import pandas as pd

# 读取表格,使用openpyxl引擎,获取表名为表1的内容
df = pd.read_excel("test.xlsx", engine="openpyxl", sheet_name="表1")

# 读取指定单元格,读取第一行,第一列,即A2单元格(pandas读取表格默认不读取表头,即第一行)
one_cell = df.iat[0,0]
print(one_cell)

        (2)读取表格指定行

# 导入pandas库,简写为pd
import pandas as pd

# 读取表格,使用openpyxl引擎,获取表名为表1的内容
df = pd.read_excel("test.xlsx", engine="openpyxl", sheet_name="表1")

# 读取指定行,读取第一行数据,表头外的第一行(pandas读取表格默认不读取表头,即第一行)
row_data = df.loc[[0]].values
for cel in row_data:
    print(cel)

        (3)读取表格指定列

# 导入pandas库,简写为pd
import pandas as pd

# 读取表格,使用openpyxl引擎,获取表名为表1的内容
df = pd.read_excel("test.xlsx", engine="openpyxl", sheet_name="表1")

# 读取指定列,读取第一列数据,iloc(参数1,参数2),参数1:读取的行数,参数2:读取的列,两者是一个列表
col_data = df.iloc[0:,[0]]
for col in col_data:
    print(col)

2、使用openpyxl操作excel表格

      (1)读取指定单元格

# 导入openpyxl库,方便使用简写为 vb
import openpyxl as vb

# 创建一个工作表和工作簿
wb = vb.load_workbook('test.xlsx')
sheet = wb["Sheet1"]    # 获取的表名为Sheet

# 读取指定位置单元格的值,读取第一行,第一列,即A1位置单元格的值
cell_data = sheet.cell(row=1, column=1).value
print(cell_data)

        (2)读取表格指定行

# 导入openpyxl库,方便使用简写为 vb
import openpyxl as vb

# 创建一个工作表和工作簿
wb = vb.load_workbook('test.xlsx')
sheet = wb["Sheet1"]    # 获取的表名为Sheet

# 按行获取单元格,min_col:读取表格的1,2列,min_row:从第二行开始读到第20行,所有内容
# 读取顺序是一行再一行
rows = sheet.iter_rows(min_col=1, max_col=2, min_row=2, max_row=20)
# 打印读取内容
for row in rows:
    for cell in row:
        print(cell.value)

# 读取指定的行,先用列表推导式生成包含每一列中所有单元格的元组的列表,再对列表取索引
one_rows = [val for val in sheet.rows][0]   #获取第一行

# 打印读取内容
for cel in one_rows:
    print(cel.value)

        (3)读取表格指定列

# 导入openpyxl库,方便使用简写为 vb
import openpyxl as vb

# 创建一个工作表和工作簿
wb = vb.load_workbook('test.xlsx')
sheet = wb["Sheet1"]    # 获取的表名为Sheet

# 按列获取单元格,min_col:读取表格的1,2列,min_row:从第二行开始读到第20行,所有内容
# 读取顺序是一列再一列
cols = sheet.iter_cols(min_col=1, max_col=2, min_row=2, max_row=20)
# 打印读取内容
for col in cols:
    for cell in col:
        print(cell.value)

# 读取指定列,先用列表推导式生成包含每一列中所有单元格的元组的列表,再对列表取索引
one_cols = [val for val in sheet.columns][1]    # 获取第二列
# 打印读取内容
for col in one_cols:
    print(col.value)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐