1. 程式人生 > >Python學習—對excel表格的操作

Python學習—對excel表格的操作

默認 -o NPU class ios 結果 技術 inpu 一個

安裝對excel操作的模塊:openpyxl

1.excel中的基本定義

  • 工作簿(workbook):整個excel表哥文件稱為一個工作簿
  • 工作表(sheet):一個工作簿中有多個工作表
  • 活動表(active sheet):保存文件時候停留在那個表,那個表就被稱為活動表
  • 行(row): 1,2,3,4,5,6........
  • 列(column): A,B,C,D......
  • 單元格(cell); B1,C1,C5......

例子1

import openpyxl

#打開一個excel文檔
wb = openpyxl.load_workbook(‘/home/kiosk/Desktop/student.xlsx‘)

print(wb)
print(type(wb))
#查看工作簿的所有工作表
print(wb.sheetnames)
#查看當前活動表
print(wb.active)
"""
運行結果:
<openpyxl.workbook.workbook.Workbook object at 0x7fd69d613278>
<class ‘openpyxl.workbook.workbook.Workbook‘>
[‘學生表‘, ‘Sheet2‘, ‘Sheet3‘]
<Worksheet "Sheet3">
"""

#選擇要操作的工作表,返回工作表對象
sheet = wb[‘學生表‘]
print(wb.active)
#獲取工作表的名稱
print(sheet.title)
"""
運行結果:
<Worksheet "Sheet3">    #這裏可以看到,活動表還是Sheet3,它並沒有因為選擇了其他操作的工作表而改變
學生表
"""

cell = sheet[‘B1‘]
print(cell)
print(cell.row,cell.column)
print(cell.value)
"""
運行結果:
<Cell ‘學生表‘.B1>
1 B
張三
"""

實例2
有excel表格文件如下:
技術分享圖片
將表格數據讀出,按B列的數據從小到大排序後寫入文件stores.txt

import openpyxl

def readwb(wbname,sheetname=None):
    li = []
    wb = openpyxl.load_workbook(wbname)
    if not sheetname:
        sheet = wb[wb.active.title]
    else:
        sheet = wb[sheetname]
    for row in sheet.rows:
        row_li = [cell.value for cell in row]
        li.append(row_li)
    return li

s = input(‘請輸入工作簿名字 工作表名字(默認為活動表):‘).split()

if len(s) == 1:
    li = readwb(s[0])
else:
    li = readwb(s[0],s[1])

li = sorted(li,key=lambda x:x[1])
with open(‘stores.txt‘,‘w‘) as f:
    for i in li:
        f.write(i[0]+‘:‘+str(i[1])+‘:‘+str(i[2])+‘\n‘)

結果截圖
技術分享圖片

Python學習—對excel表格的操作