python 对excel的基本操作
import openpyxl
wb = openpyxl.load_workbook('Book1.xlsx') #打开Book1文档,实力化出一个wb对象
print(wb.sheetnames) #获取当前工作簿里的所有表
print(wb.active) #正在使用的表
sheet = wb['Sheet1']
print(sheet.title) #获取工作表的名称
print(sheet.cell(row=1,column=2).value) #获取指定位置的信息
cell = sheet['B1'] #指定单元格,对单元格的相关进行操作
print(cell.row,cell.column,cell.value)
print(sheet.max_row)
print(sheet.max_column) #获取最大行数和最大列数
##访问所有单元格的信息
print(type(sheet.rows)) #sheet的所有行和所有列都是一个生成器
for row in sheet.rows:
for info in row:
print(info.value)
wb.save(filename='Book1.xlsx') #保存所有修改信息
工作簿中所有的表和所有当前正在工作的表:
工作簿指定单元格的信息:
工作表最大的行数和列数:
工作表所有行的数据类型是一个生成器:
应用
定义一个函数对原有的表格中的数据按单价进行排序,然后再保存到一个新的excel表
import openpyxl
def readwb(wbname,sheetname=None): #函数对原有的数据进行排序
wb = openpyxl.load_workbook(wbname)
sheet = wb.active
if sheetname: #如果用户传入工作表,对sheet变量修改为用户传入的表
sheet = wb[sheetname]
li = [row for row in sheet.rows] #对用户指定的表的所有行的内容存入列表值中
return sorted(li[1:],key=lambda x:x[1].value) #对新建的列表进行排序,并返回
#return sorted(li,key=lambda x:x[1].value)
def save_to_file(filename,wbname):
wb = openpyxl.Workbook() #注意:新建一个excce表的时侯不要向函数里加参数
sheet = wb.active
sheet.title = 'Sheet1'
for i,row in enumerate(readwb(wbname)): #采用循环的嵌套表中的指定元素进行修改
for j,info in enumerate(row):
sheet.cell(row=i+1,column=j+1).value = info.value
wb.save(filename=filename) #对新建的excel表进行进行保存
save_to_file('Book6.xlsx','Book2.xlsx')
进行排序前 的表格:
进行排序后的表格: