摘要:之前在做一个的简单教程的时候站的一个简单教程当时演示应该把交叉表图转换成数据表格图的形式。但是在里没有直接实现这个需求的函数,的包有一个可以实现这功能,但是,毕竟是。
之前在做一个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")
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/41816.html
摘要:查找了一下,可以操作表的几个库有以下几个这个是推荐使用的库,可以读写以上格式,以结尾的文件。这个支持读取数据,支持以结尾的文件,也就是比较老的格式。这个和上面的相对应,支持写入书和格式化数据,支持结尾的文件格式。 最近需要用到Python来操作excel表,读取表格内容到数据库。所以就搜索了相关资料。查找了一下,可以操作excel表的几个库有以下几个: openpyxl 这个是推荐使用...
摘要:是阿里巴巴对封装的一个库,号称解决了的问题,并且在使用上也更方便一些然而我在使用的时候发现还是有很多坑,其中一个比较头疼的是对单个单元格样式的设置。 EasyExcel是阿里巴巴对POI封装的一个库,号称解决了POI的OOM问题,并且在使用上也更方便一些Github:[](https://github.com/alibaba/ea... 然而我在使用的时候发现还是有很多坑,其中一个比...
阅读 2828·2021-11-16 11:55
阅读 2571·2021-09-29 09:34
阅读 3349·2021-09-01 14:21
阅读 3684·2019-08-29 12:36
阅读 664·2019-08-26 10:55
阅读 3788·2019-08-26 10:20
阅读 998·2019-08-23 18:19
阅读 1165·2019-08-23 17:56