可以使用 openpyxl、pandas、openpyxl、xlsxwriter、xlwings、pywin32、 xlrd or xlwt 等py庫 進行excel讀寫;
以下通過 xlrd 和 xlwt
pip install xlrd
pip install xlwt
import xlrd
# 1、打開文件 exceld = xlrd.open_workbook(excelpath) # 2、獲取表單對象 print '表單名字:', exceld.sheet_names() print '表單數量:', exceld.nsheets print '表單對象:', exceld.sheets() print '通過名字查找:', exceld.sheet_by_name("test") print '通過索引查找:', exceld.sheet_by_index(0) data = xlrd.open_workbook(excelpath) table = data.sheet_by_index(0) for rowCount in range(table.nrows): val = (table.row_values(rowCount)) for v in val: print v
這就完成了對excel基本數據的遍歷
API: https://xlrd.readthedocs.io/en/latest/api.html#module-xlrd
Demo:讀取 身份證號碼判斷年齡大於60歲 寫入另一個xls
#coding:utf-8 import xlrd import xlwt excelpath = "E:\\xyldy.xls" excel_retpath = "E:\\result.xls" # 1、打開文件 exceld = xlrd.open_workbook(excelpath) # 2、讀取數據 data = xlrd.open_workbook(excelpath) # 選擇表單 table = data.sheet_by_index(0) # 3、准備寫結果xls 添加結果表單 workbook = xlwt.Workbook() sheet = workbook.add_sheet("result") # 4、讀取 身份證號碼判斷年齡大於60歲 寫入結果 for rowCount in range(table.nrows): val = (table.row_values(rowCount)) a = val[2][6:10].encode("utf-8") if len(a) == 4: year = int(a) if (2020 - year) > 60: for i in range(0, len(val)): sheet.write(index, i, val[i]) index = index + 1 else: print "age = " + str((2020 - year)) else: print a # 5、保存文件 workbook.save(excel_retpath)
