Python与excel
? ?? ?在安装openpyxl包之后,我们能够利用Python实现对表格文件的各项操作,本次的任务依旧偏编程实践性,所用的方法不难,关键在于掌握调用openpyxl的方法,具体的语句可以记住常用的,用到时候再查不熟悉的也可以。 ? ?? ?由于内容多,仍然利用思维导图的方法来组织学习内容。
读入
写入
样式设计
练习题部分
? ?? ?本次练习题均提供了参考程序,感谢Datawhale成员的悉心付出
题1
? ?? ?找出用户行为偏好.xlsx中sheet1表中空着的格子,并输出这些格子的坐标
from openpyxl import load_workbook
exl = load_workbook('用户行为偏好.xlsx')
sheet = exl.active
for row in sheet.iter_rows(min_row = 1, max_row = 102840,min_col = 1,max_col = 4):
for cell in row:
if not cell.value:
print(cell.coordinate)
? ?? ?给定的参考程序利用了读取多个格子方法中的行获取办法,获取了一行的数值之后再用for循环得出每一列的值,再检验是否为空,若为空输出坐标。 ? ?? ?本题较简单,基本就是应用了读取操作。
题2
? ?? ?打开test文件,找出文件中购买数量 buy_mount 超过5的行,并对其标红、加粗、附上边框。
from openpyxl import load_workbook
from openpyxl.styles import Font, Side, Border
workbook = load_workbook('test.xlsx')
sheet = workbook.active
buy_mount = sheet['F']
row_lst = []
for cell in buy_mount:
if isinstance(cell.value, int) and cell.value > 5:
print(cell.row)
row_lst.append(cell.row)
side = Side(style='thin', color='FF000000')
border = Border(left=side, right=side, top=side, bottom=side)
font = Font(bold=True, color='FF0000')
for row in row_lst:
for cell in sheet[row]:
cell.font = font
cell.border = border
workbook.save('new_test.xlsx')
本题分为两部分:
- 找到购买数量超过5的行
- 完成样式操作。
- 保存文件
? ?? ?本题的参考程序使用的读取方法与题1不同,由于只需要要获取F列数值,于是直接锁定的F列然后找数值大于5的行数添加到行数列表中。 ? ?? ?样式操作就是很简单的遍历整个行然后赋值,没有什么特别的 ? ?? ?两道习题都不难,基本就是循环遍历加上样式库的一些赋值操作,参考程序上看比较好理解。
|