1、数据的写入:
#先建立一个xlsx文件并保存
import openpyxl
wb=openpyxl.Workbook() #新建一个workbook
sheet=wb.active #不加括号
print(sheet.title)
sheet.title='2019.7.28' #改变表单的名字
# print(wb.get_sheet_names()) 该方法会报错,因为太过时了
print(wb.sheetnames) #这个方法与上面的相同,更加简单,不会报错
wb.create_sheet(index=0,title='pht') #创建表单,给出位置并取名字
wb.create_sheet(index=1,title='phl')
print(wb.sheetnames)
'''
删除:
wb.remove_sheet(wb.get_sheet_by_name('phl'))#该方法会出现warning,但是可以执行
print(wb.sheetnames)
'''
sheet=wb.active #默认为第一张表单,这里即'pht',等价于sheet=wb['pht']
sheet0=wb['phl'] #获得某张表单
sheet['A1']='开始' #填入单元格
sheet0['A1']='开始'#填入单元格
sheet1=wb.create_sheet(index=3,title='666')
for r in range(1,21):
sheet1.append(range(10))
'''
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
'
sheet2=wb.create_sheet(index=4,title='whut')
r1=[ #r1为一个列表对象,其内部元素也为列表
['班级','姓名','年龄'],
[1,'fgh',10], # 加''号
[2,'dfds',11],
[3,'gde',9],
[4,'htu',10]
]
for r in r1:
sheet2.append(r)
'''
班级 姓名 年龄
1 fgh 10
2 dfds 11
3 gde 9
4 htu 10
'''
#如果需要对上面的输出结果进行修改。比如:dfds的年龄为12,gde的年龄为7
MEG_UPDATE={'dfds':12,'gde':7} #建立一个字典类型的数据
for i in range(2,sheet2.max_row+1): #sheet2.max_row
thevalue=sheet2.cell(row=i,column=2).value
if thevalue in MEG_UPDATE: #字典中的键值,即MEG_UPDATE.key,这里省略了key。如果要看字典的value值,则写成MEG_UPDATE.value
sheet2.cell(row=i,column=3).value = MEG_UPDATE[thevalue]
'''
班级 姓名 年龄
1 fgh 10
2 dfds 12
3 gde 7
4 htu 10
'''
#运行程序时要把excel文档关闭了,否则最后一步会出错
wb.save('a example.xlsx') #保存总是放到最后,方便观察结果。保存wb文件到硬盘上
2、部分结果: