Python3.x操作Excel(1)
阿新 • • 發佈:2018-12-16
import xlwt """ enumerate的用法 >>>seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>>list(enumerate(seasons)) # 小標從 0 開始 [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>>list(enumerate(seasons, start=1)) # 小標從 1 開始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] """ def CreatExcel(filename): """建立Excel表格""" #建立workbook即新建excel檔案/工作博 filebook=xlwt.Workbook(encoding='utf-8') #建立工作工作表,如果想建立多個工作表,直接在後面 worksheet=filebook.add_sheet(filename) #返回建立的表格名和路徑 infoDic={'key1':filebook,'key2':worksheet,'key3':filename} #返回工作簿和工作表的字典型別值 return infoDic def addDataExcel(infodic): """在表格中新增資料""" #對傳入的字典型別的資料進行解析 filebook=infodic.get('key1')#獲得工作簿 worksheet=infodic.get('key2')#獲得表 filename=infodic.get('key3')#檔名 # 字典資料 #巢狀:內部巢狀列表型 data = { "1": ["張三", 150, 120, 100], "2": ["wang", 90, 99, 95], "3": ["wu", 60, 66, 68] } ldata = []#列表資料 # for迴圈指定取出key值存入num中 num = [a for a in data] # 字典資料取出後無序,需要先排序 num.sort() # for迴圈將data字典中的鍵和值分批的儲存在ldata中 #ldata=[["張三", 150, 120, 100] ["wang", 90, 99, 95] ["wu", 60, 66, 68]] for x in num: t = [int(x)] #x表示鍵值,根據鍵值取出字典中相應的值 for a in data[x]: #a中存放的是data資料中x鍵值對應的資料 t.append(a) ldata.append(t) # 將資料寫入檔案,i是enumerate()函式返回的序號數,表示行 #第一次循壞:第一個for(1,["張三", 150, 120, 100]) i=1(row),p=["張三", 150, 120, 100] # 第二個for(1,"張三") j=1(col),q="張三" # (2,"150") j=2(col), # (3,"120") j=3(col), # (4,"100") j=4(col), #第二次循壞: #第三次迴圈: for i, p in enumerate(ldata): #j是enumerate()函式返回的序號數,表示列 for j, q in enumerate(p): worksheet.write(i, j, q)#row行,col列,data資料 filebook.save(filename) return "OK" if __name__=='__main__': #注意,如果字尾型別名為xlsx可能會出現打不開的現象。需要修正為xls #主要是因為xlwt只支援Excel 2003,xlsx excelDic=CreatExcel("myExcel.xls") mark=addDataExcel(excelDic) print(mark)