highlight.js

星期四, 11月 08, 2018

使用 Python 從 excel 檔終結取資料

由於需要從大量的 excel 檔中擷取資料,就想是否可以用程式的方式來解決,一查知下, 果然有個 xlrd 模組可以讀寫 excel 檔。例如, 我想從當前資料夾下一個個打開 excel 檔,並且檢查每一筆資料中, 若第 B 欄的內容符合條件, 就將同一列 B 欄與 D欄的資料寫入輸出檔案中, 就可以撰寫類似以下的程式:
import glob
import xlrd

with open('result.txt', mode='w', encoding='utf-8') as of:
  for xlsfile in glob.iglob("order*.xls"):
    wb = xlrd.open_workbook(xlsfile)
    for i in range(wb.nsheets):
      st = wb.sheet_by_index(i)
      if st.nrows > 1:
        for r in range(st.nrows):
          if st.cell(r, 1).value in ('table','chair'):
            of.write(st.cell(r, 1).value + ',' + 
              st.cell(r, 3).value + "\n")
要注意的是, 這個套件中不論是列編號或是欄編號都是從 0 開始, 因此 excel 檔中的第 1 列編號為 0, 第 B 欄編號為 1, 所以上面程式中 cell(r, 1) 就是 excel 檔中第 r+1 列的第 B 欄。詳細的用法可以參考該模組的說明文件, 或是參考這一份簡單的教學

沒有留言: