Python遇上Excel,这20个常用操作也可以轻松操作
Excel作为一款常见的办公软件,无论是在日常工作中还是在数据分析等领域中都有着广泛的应用。而对于Python开发者来讲,Excel也不再是一个遥远的存在。Python和Excel的结合,可以让我们更加灵活地处理表格数据。本文将介绍20个常用的Python操作Excel的方法,让你也可以轻松应对Excel表格处理的需求。
1. 安装openpyxl库
在Python中操作Excel表格,需要用到openpyxl库。如果你还没有安装该库,可以通过以下命令进行安装:
!pip install openpyxl
2. 打开Excel文件
要操作Excel表格,首先需要打开Excel文件。可以使用openpyxl库中的load_workbook()函数来打开Excel文件,如下所示:
from openpyxl import load_workbook
# 打开一个Excel文件
wb = load_workbook('example.xlsx')
其中,'example.xlsx'为你要打开的Excel文件名。
3. 获取单元格数据
从Excel表格中获取单元格数据,可以使用openpyxl库中的cell()函数。如下所示,获取单元格A1中的数据:
# 获取单元格A1中的数据
sheet = wb['Sheet1']
cell = sheet.cell(row=1, column=1)
print(cell.value)
4. 修改单元格数据
修改Excel表格中的单元格数据,可以使用openpyxl库中的cell()函数。如下所示,将A1单元格中的数据修改为'Hello World!':
# 将A1单元格中的数据修改为'Hello World!'
sheet = wb['Sheet1']
cell = sheet.cell(row=1, column=1)
cell.value = 'Hello World!'
wb.save('example.xlsx')
5. 获取行数据
要获取Excel表格中的一行数据,可以使用openpyxl库中的iter_rows()函数。如下所示,获取第2行中的所有数据:
# 获取第2行中的所有数据
sheet = wb['Sheet1']
for row in sheet.iter_rows(min_row=2, max_row=2):
for cell in row:
print(cell.value, end=' ')
print() # 换行
6. 获取列数据
要获取Excel表格中的一列数据,可以使用openpyxl库中的iter_cols()函数。如下所示,获取第2列中的所有数据:
# 获取第2列中的所有数据
sheet = wb['Sheet1']
for col in sheet.iter_cols(min_col=2, max_col=2):
for cell in col:
print(cell.value, end=' ')
print() # 换行
7. 获取单元格范围数据
要获取Excel表格中的一个范围数据,可以使用openpyxl库中的iter_rows()和iter_cols()函数联合使用。如下所示,获取B2:D4单元格范围内的所有数据:
# 获取B2:D4单元格范围内的所有数据
sheet = wb['Sheet1']
for row in sheet.iter_rows(min_row=2, max_row=4, min_col=2, max_col=4):
for cell in row:
print(cell.value, end=' ')
print() # 换行
8. 插入行数据
要在Excel表格中插入一行数据,可以使用openpyxl库中的insert_rows()函数。如下所示,在第2行插入一行数据:
# 在第2行插入一行数据
sheet = wb['Sheet1']
sheet.insert_rows(2)
sheet.cell(row=2, column=1, value='John')
sheet.cell(row=2, column=2, value=25)
wb.save('example.xlsx')
9. 插入列数据
要在Excel表格中插入一列数据,可以使用openpyxl库中的insert_cols()函数。如下所示,在第2列插入一列数据:
# 在第2列插入一列数据
sheet = wb['Sheet1']
sheet.insert_cols(2)
sheet.cell(row=1, column=2, value='Age')
sheet.cell(row=2, column=2, value=25)
sheet.cell(row=3, column=2, value=26)
sheet.cell(row=4, column=2, value=27)
wb.save('example.xlsx')
10. 删除行数据
要在Excel表格中删除一行数据,可以使用openpyxl库中的delete_rows()函数。如下所示,删除第2行的数据:
# 删除第2行的数据
sheet = wb['Sheet1']
sheet.delete_rows(2)
wb.save('example.xlsx')
11. 删除列数据
要在Excel表格中删除一列数据,可以使用openpyxl库中的delete_cols()函数。如下所示,删除第2列的数据:
# 删除第2列的数据
sheet = wb['Sheet1']
sheet.delete_cols(2)
wb.save('example.xlsx')
12. 合并单元格
要在Excel表格中合并单元格,可以使用openpyxl库中的merge_cells()函数。如下所示,合并B2:C2单元格:
# 合并B2:C2单元格
sheet = wb['Sheet1']
sheet.merge_cells('B2:C2')
wb.save('example.xlsx')
13. 拆分单元格
要在Excel表格中拆分单元格,可以使用openpyxl库中的merge_cells()函数。如下所示,拆分B2:C2单元格:
# 拆分B2:C2单元格
sheet = wb['Sheet1']
sheet.unmerge_cells('B2:C2')
wb.save('example.xlsx')
14. 设置单元格格式
要设置Excel表格中单元格的格式,可以使用openpyxl库中的Style类。如下所示,将A1单元格设置为红色和粗体:
from openpyxl.styles import Font
# 将A1单元格设置为红色和粗体
sheet = wb['Sheet1']
cell = sheet.cell(row=1, column=1)
cell.font = Font(color='FF0000', bold=True)
wb.save('example.xlsx')
15. 设置单元格边框
要设置Excel表格中单元格的边框,可以使用openpyxl库中的Style类。如下所示,将A1单元格的边框设置为红色和粗体:
from openpyxl.styles import Border, Side
# 将A1单元格的边框设置为红色和粗体
sheet = wb['Sheet1']
cell = sheet.cell(row=1, column=1)
border = Border(
left=Side(border_style='thick', color='FF0000'),
right=Side(border_style='thick', color='FF0000'),
top=Side(border_style='thick', color='FF0000'),
bottom=Side(border_style='thick', color='FF0000')
)
cell.border = border
wb.save('example.xlsx')
16. 设置单元格背景色
要设置Excel表格中单元格的背景色,可以使用openpyxl库中的Style类。如下所示,将A1单元格的背景色设置为灰色:
from openpyxl.styles import PatternFill
# 将A1单元格的背景色设置为灰色
sheet = wb['Sheet1']
cell = sheet.cell(row=1, column=1)
fill = PatternFill(
fill_type='solid',
start_color='C0C0C0',
end_color='C0C0C0'
)
cell.fill = fill
wb.save('example.xlsx')
17. 添加筛选器
在Excel表格中添加筛选器,可以使用openpyxl库中的AutoFilter类。如下所示,在第1行添加筛选器:
from openpyxl.worksheet.filters import AutoFilter
# 在第1行添加筛选器
sheet = wb['Sheet1']
sheet.auto_filter.ref = 'A1:E1'
wb.save('example.xlsx')
18. 隐藏行或列
要在Excel表格中隐藏行或列,可以设置行高或列宽为0。如下所示,隐藏第2行和第2列:
# 隐藏第2行和第2列
sheet = wb['Sheet1']
sheet.row_dimensions[2].height = 0
sheet.column_dimensions['B'].width = 0
wb.save('example.xlsx')
19. 显示所有行或列
要在Excel表格中显示所有行或列,可以设置行高或列宽为None。如下所示,显示所有行和列:
# 显示所有行和列
sheet = wb['Sheet1']
for i in range(1, sheet.max_row+1):
sheet.row_dimensions[i].height = None
for i in range(1, sheet.max_column+1):
sheet.column_dimensions[chr(65+i-1)].width = None
wb.save('example.xlsx')
20. 保存Excel文件
完成Excel表格的操作后,一定要记得保存文件。可以使用openpyxl库中的save()函数来保存文件,如下所示:
# 保存文件
wb.save('example.xlsx')
总结
Python操作Excel表格,可以让我们更加灵活地处理表格数据。本文介绍了20个常用的Python操作Excel的方法,包括打开Excel文件、获取单元格数据、修改单元格数据、获取行数据、获取列数据、获取单元格范围数据、插入行数据、插入列数据、删除行数据、删除列数据、合并单元格、拆分单元格、设置单元格格式、设置单元格边框、设置单元格背景色、添加筛选器、隐藏行或列以及显示所有行或列等操作。希望这些操作能够对你在实际工作中处理Excel表格数据有所帮助!