使用 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文件