2016年10月19日 星期三

openpyxl 資料處理(mapping)

最近一樣需要轉mapping的程式, 但想將map另存新檔.
但上網查了一下xlwings似乎只能一次處理一份excel, 也就是讀取和存檔必須同一份檔案.
所以用openpyxl試寫看看, 
發現openpyxl其實還不錯. 網路上語法教學更多更詳細.

import openpyxl as pyxl
wb = pyxl.load_workbook(r'C:\input.xlsx')
ws = wb.active

''' 
data format:

value  x   y
12     1   1
42     1   2
5      1   3
......   
'''
Val = []
for col in ws.columns[0]:
    Val.append(col.value)
x_pos = []
for col in ws.columns[1]:
    x_pos.append(col.value)
y_pos = []
for col in ws.columns[2]:
    y_pos.append(col.value)    

myVal = list(zip(Val, x_pos, y_pos))

wb2 = pyxl.Workbook()
ws2 = wb2.active

for i_arr in myVal:
    ws2.cell(row=i_arr[2]+2, column=i_arr[1]+1).value = abs(i_arr[0])
#ws2['A2']=414 available too
    
wb2.save(r'C:\output.xlsx')

沒有留言:

張貼留言