Excel作为一款常用的办公软件,在我们的生活和工作中扮演着重要角色。然而,在处理大量的数据时,手动操作的效率很低,这时候就需要用到Python自动操控Excel。
一、读取Excel文件
要读取Excel文件,需要安装并导入openpyxl模块。
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 获取表格
sheet = wb.active
# 读取一行数据
row1 = sheet[1]
for cell in row1:
print(cell.value)
# 读取多行数据
rows = sheet['A1:B2']
for row in rows:
for cell in row:
print(cell.value)
上述代码中,通过load_workbook()方法打开Excel文件,然后通过active属性获取表格。接着,可以通过下标的方式获取一行或多行数据,并通过循环遍历每个单元格,获取单元格的值。
二、写入Excel文件
要写入Excel文件,同样需要导入openpyxl模块。
import openpyxl
# 新建Excel文件
wb = openpyxl.Workbook()
# 新建表格
sheet = wb.active
sheet.title = 'Sheet1'
# 写入数据
sheet['A1'] = 'Name'
sheet['B1'] = 'Age'
sheet['C1'] = 'Gender'
sheet['A2'] = 'Tom'
sheet['B2'] = 23
sheet['C2'] = 'Male'
sheet['A3'] = 'Lily'
sheet['B3'] = 21
sheet['C3'] = 'Female'
# 保存Excel文件
wb.save('example.xlsx')
上述代码中,通过Workbook()方法新建Excel文件,通过active属性获取表格,然后可以通过下标的方式写入数据到指定单元格。最后,通过save()方法将修改后的Excel文件保存。
三、格式化Excel文件
在自动操控Excel时,为了使Excel数据更加清晰易读,可以进行格式化操作。
import openpyxl
from openpyxl.styles import Font, Alignment
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 获取表格
sheet = wb.active
# 设置字体和对齐方式
font = Font(size=14, bold=True)
alignment = Alignment(horizontal='center', vertical='center')
# 格式化标题行
for cell in sheet[1]:
cell.font = font
cell.alignment = alignment
# 格式化数据
for row in sheet.iter_rows(min_row=2):
for cell in row:
cell.alignment = alignment
# 保存Excel文件
wb.save('example.xlsx')
上述代码中,通过Font和Alignment类设置字体和对齐方式,然后通过iter_rows()方法遍历数据行进行格式化。最后,保存Excel文件。
四、批量处理Excel文件
当需要对大量Excel文件进行批量处理时,可以使用os和glob模块。
import openpyxl
import os
import glob
# 获取Excel文件列表
file_list = glob.glob('*.xlsx')
# 遍历Excel文件
for file in file_list:
# 打开Excel文件
wb = openpyxl.load_workbook(file)
# 获取表格
sheet = wb.active
# 对表格进行操作
...
# 保存Excel文件
wb.save(file)
# 合并Excel文件
merged_wb = openpyxl.Workbook()
for file in file_list:
# 打开Excel文件
wb = openpyxl.load_workbook(file)
# 获取表格
sheet = wb.active
# 复制数据到新表格
for row in sheet.iter_rows():
merged_wb.active.append([cell.value for cell in row])
# 保存合并后的Excel文件
merged_wb.save('merged.xlsx')
上述代码中,通过glob.glob()方法获取Excel文件列表,然后通过os模块遍历每个Excel文件进行操作。最后,将处理完的Excel文件合并为一个新的Excel文件。
五、总结
通过Python自动操控Excel,可以大大提高Excel数据处理的效率。读取Excel文件、写入Excel文件、格式化Excel文件和批量处理Excel文件是常用的操作方式,掌握这些技能可以使我们在实践中更加得心应手。