用Python操作Excel的写
对表单的操作
#创建工作表格
wb = openpyxl.Workbook()
#获取表单对象
sheet = wb.active
#修改表单名字
sheet.title = 'First sheet'
#改变表单次序
wb.create_sheet(index=0,title='Second Sheet')
wb.create_sheet(index=2,title='Third Sheet')
#删除表单
wb.remove_sheet(wb['First sheet'])
保存表格
对于正在操作的工作表还存在内存中,不是存在于硬盘中,是临时的文件,断电会消失,通过save(filename=‘xxx’)能将文件写入磁盘长期保存。
Excel的写
用range写
ws1 = wb.create_sheet(title='range')
for row in range(1,40):
ws1.append(range(1,16))
用数组写
ws2 = wb.create_sheet(title='array')
array = [['Number','Batch1','Batch2'],
[2,40,30],
[3,40,25],
[4,24,23],
[5,23,54],
[6,34,34]]
for row in array:
ws2.append(row)
用坐标写
ws3 = wb.create_sheet(title='coordinate')
for row in range(5,30):
for col in range(15,53):
ws3.cell(column=col,row=row,value=get_column_letter(col))
保存为新表格(建议不要覆盖原表格)
wb.save(filename='thirdTest.xlsx')
实例
批量修改表格数据:通过字典保存待修改的数据,先遍历表格的每一行,取到某一行的key值依次与字典中的key比较,若命中,则修改值。
import openpyxl
PRICE_UPDATE = {
'食品科技学院1': 111,
'食品科技学院2': 222,
'滨海农业学院1': 1.11,
'滨海农业学院2': 2.22
}
wb = openpyxl.load_workbook('全校课表.xlsx')
ws = wb.active
for row in range(2, ws.max_row + 1):
name = ws.cell(row=row, column=1).value #取出key
if name in PRICE_UPDATE: #比较
ws.cell(row=row, column=4).value = PRICE_UPDATE[name] #,替换值
wb.save(filename='updateCourse.xlsx')