摘要:之前在做一個的簡單教程的時候站的一個簡單教程當時演示應該把交叉表圖轉換成數據表格圖的形式。但是在里沒有直接實現這個需求的函數,的包有一個可以實現這功能,但是,畢竟是。
之前在做一個excel的簡單教程的時候:
B站的一個Excel簡單教程
當時演示應該把交叉表(圖1)轉換成數據表格(圖2)的形式。
但是在excel里沒有直接實現這個需求的函數,R的tidyr包有一個spread可以實現這功能,但是,畢竟是R。
python同樣可以實現這個需求,借助openpyxl這個包和excel互動,然后用一點代碼就可以完成了:
from openpyxl import Workbook,load_workbook from openpyxl.utils import get_column_letter wb = load_workbook("測試.xlsx") ws = wb.active rcList = tuple(ws.rows) print(rcList) def spreadIt(rcList,rowVarName="var1",colVarName="var2",cellVarName="var3"): rLength = len(rcList) cLength = len(rcList[0]) rst = [[rowVarName,colVarName,cellVarName]] for i in range(1,rLength): for j in range(1,cLength): rst.append([rcList[i][0].value, rcList[0] [j].value, rcList[i][j].value]) return rst def write2Sheet(spreaded,worksheet): for i in range(len(spreaded)): for j in range(len(spreaded[0])): worksheet["%s%d"%(get_column_letter(j+1),i+1)]=spreaded[i][j] wbNew = Workbook() wsNew = wbNew.active write2Sheet(spreadIt(rcList,rowVarName="節數",colVarName="星期",cellVarName="課程"),wsNew) wbNew.save(filename="test.xlsx")
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41816.html
摘要:查找了一下,可以操作表的幾個庫有以下幾個這個是推薦使用的庫,可以讀寫以上格式,以結尾的文件。這個支持讀取數據,支持以結尾的文件,也就是比較老的格式。這個和上面的相對應,支持寫入書和格式化數據,支持結尾的文件格式。 最近需要用到Python來操作excel表,讀取表格內容到數據庫。所以就搜索了相關資料。查找了一下,可以操作excel表的幾個庫有以下幾個: openpyxl 這個是推薦使用...
摘要:是阿里巴巴對封裝的一個庫,號稱解決了的問題,并且在使用上也更方便一些然而我在使用的時候發現還是有很多坑,其中一個比較頭疼的是對單個單元格樣式的設置。 EasyExcel是阿里巴巴對POI封裝的一個庫,號稱解決了POI的OOM問題,并且在使用上也更方便一些Github:[](https://github.com/alibaba/ea... 然而我在使用的時候發現還是有很多坑,其中一個比...
閱讀 2874·2021-11-16 11:55
閱讀 2618·2021-09-29 09:34
閱讀 3434·2021-09-01 14:21
閱讀 3779·2019-08-29 12:36
閱讀 704·2019-08-26 10:55
閱讀 3985·2019-08-26 10:20
閱讀 1035·2019-08-23 18:19
閱讀 1202·2019-08-23 17:56