python與excel的連線
阿新 • • 發佈:2018-11-09
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')
進行排序前 的表格:
進行排序後的表格: