2.3使用Python处理excel行、列、单元格的方式

使用 openpyxl、pandas库可以方便地处理 Excel 文件的行、列和单元格。下面是一些常用的方法和示例代码:

1.导入所需的库:

 openpyxl

from openpyxl import Workbook, load_workbook

 pandas

import pandas as pd

2.打开 Excel 文件:

openpyxl
workbook = load_workbook('filename.xlsx')

  pandas

df = pd.read_excel('filename.xlsx')  # 默认读取第一个工作表的数据

3.获取工作表对象:

openpyxl
worksheet = workbook.active  # 默认使用第一个工作表

# 获取所有工作表名称
sheet_names = workbook.sheetnames
print(sheet_names)

# 获取指定工作表对象
worksheet = workbook['Sheet1']  # 替换 'Sheet1' 为您想要获取的工作表名称

  pandas

# 获取所有工作表名称
sheet_names = excel_file.sheet_names
print(sheet_names)

# 获取指定工作表对象
worksheet = excel_file.parse(sheet_name='Sheet1')  # 替换 'Sheet1' 为您想要获取的工作表名称

4.访问单个单元格:

openpyxl
cell = worksheet['A1']  # 使用坐标访问单元格
print(cell.value)  # 输出单元格的值

# 或者使用行列索引访问单元格
cell = worksheet.cell(row=1, column=1)
print(cell.value)

  pandas

cell_value = df.at[0, 'A']  # 使用行号和列标签访问单元格
print(cell_value)

5.访问行:

openpyxl
# 遍历行
for row in worksheet.iter_rows(min_row=1, max_row=worksheet.max_row):
    for cell in row:
        print(cell.value)

  pandas

row_data = df.loc[0]  # 使用行号访问整行数据
print(row_data)

# 或者使用切片访问多行数据
rows_data = df.loc[0:2]  # 访问前三行数据
print(rows_data)

6.访问列:

openpyxl
# 遍历列
for column in worksheet.iter_cols(min_col=1, max_col=worksheet.max_column):
    for cell in column:
        print(cell.value)

  pandas

column_data = df['A']  # 使用列标签访问整列数据
print(column_data)

# 或者使用多个列标签访问多列数据
columns_data = df[['A', 'B']]  # 访问列 A 和列 B 的数据
print(columns_data)

7.插入数据到指定的单元格:

openpyxl
worksheet['A1'] = 'Hello'  # 直接赋值给单元格

# 或者使用行列索引插入数据
worksheet.cell(row=1, column=2).value = 'World'

  pandas

df.at[0, 'A'] = 'Hello'  # 直接赋值给单元格

# 或者使用行列索引插入数据
df.iat[0, 1] = 'World'

8.保存并关闭 Excel 文件:

openpyxl
workbook.save('new_filename.xlsx')
workbook.close()

  pandas

df.to_excel('new_filename.xlsx', index=False)  # 将DataFrame保存为Excel文件