1. 程式人生 > >python與excel的連線

python與excel的連線

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')

進行排序前 的表格:
這裡寫圖片描述
進行排序後的表格:
這裡寫圖片描述