python 第6册 辅助Excel 003

--用教授的方式学习。

003使用字典拆分多个工作簿

此案例主要通过使用Python 语言的字典,从而实现根据特定的分类原则将一个工作簿(的工作表数据)拆分成多个工作簿(的工作表数据)。当运行此案例的 Python 代码(A309.py 文件)之后,将根据录取院校把"录取表.xlsx"文件的录取表数据拆分到各个录取院校工作簿(各个 Excel 文件)中,效果分别如图003-1 和图003-2所示。

A309.py 文件Python的代码如下:

python 复制代码
import openpyxl
#读取"录取表.xlsx"文件
myBook = openpyx]. load_
_workbook('录取表.xlsx')
mySheet = myBook['录取表']
#按行获取录取表(mySheet)的单元格数据(myRange)
myRange = list (mySheet. values)
#创建空白字典(myDict)
myDict = {}
#从录取表(myRange)的第4行开始循环(到最后一行)
for myRow in myRange| 3:]:
   井如果在字典(myDict)中存在某录取院校(myRow[ 0]),#则直接在某录取院校(myRow[ 0])中   添加考生([myRow])
   if myRow[0] in myDict. keys():
      myDict[myRow[0]] += [myRow]#否则创建新录取院校
   else:
      myDict[myRow[0]] = [myRow]
#循环字典(nyDict)的成员
for myKey, myValue in myDict. items():
   #创建新工作簿(myNewBook)
   myNewBook = openpyxl.Workbook ()
  myNewSheet = myNewBook. active
   #在新工作表(myNewSheet)中添加表头(录取院校、专业、考生姓名、总分)
   myNewSheet. append(myRange[2])
   #在新工作表(myNewSheet)中添加键名(录取院校)下的多个键值(考生)
   for myRow in myValue:
      myNewSheet. append (myRow)
   myNewSheet. title= myKey +'录取表'
   #保存拆分之后(各个录取院校)的工作簿(myNewBook),或者说保存各个 Excel 文件myPath='结果表-'+ myKey +'录取表.xlsx'
   myNewBook. save(myPath)

在上面这段代码中,字典(myDict)的作用就是以"录取院校"作为键名,在该键名下添加键值(即添加录取院校录取的多个考生),从而实现对所有考生进行归类。在此案例中,当字典(myDict)添加了考生以后,其保存的考生内容如下:

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| {北京大学 :[(北京大学 ,材料化学 ,李洪',738),(北京大学 ,材料化学,'常金龙',718),('北京大学,材料化学 ,李科技',712),('北京大学 ,金融学',段成全 ,722)],清华大学':[('清华大学 ,•环境工程,易来江',727),('清华大学,'车辆工程,'张振中',740),('清华大学,'车辆工程,'田彬',732),('清华大学','软件工程,'陈吉文',718)],'浙江大学':[(浙江大学,'生物医学','刘康华',695),('浙江大学,'机械工程','辛国明,699),('浙江大学','机械工程','李建平',696),('浙江大学','生物医学','黄明会',703),('浙江大学,生物医学, '张华康',692)],'武汉大学':[('武汉大学 ,'口腔医学','杜建国',701),('武汉大学','口腔医学','何友大',692),(武汉大学',城乡规划学','万冬',701)]} |

在创建多个工作簿时,则根据键名(录取院校)在每个工作簿的活动工作表中直接添加该键名(录取院校)的所有键值(即录取院校录取的多个考生),最后将每个工作簿保存为Excel 文件。在此案例中,myDict[myRow[0]]=[myRow]也可以写成 myDict. update({myRow[O]:[myRow]})。

---end

相关推荐
—Miss. Z—6 小时前
Power Query数据分类整合
excel
开开心心就好11 小时前
系统管理工具,多功能隐私清理文件粉碎工具
java·网络·windows·r语言·电脑·excel·symfony
sinat_3751122614 小时前
abap excel上传
excel·上传·sap·abap
·云扬·14 小时前
【实操教程】Excel文件转CSV并导入MySQL的完整步骤
android·mysql·excel
城数派14 小时前
2019-2025年各区县逐月新房房价数据(Excel/Shp格式)
大数据·数据分析·excel
Elieal15 小时前
EasyExcel 实现 Excel 导入导出
java·excel
徐赛俊1 天前
Excel 打开后界面一片灰、无工作表的原因与解决方案(Markdown 教程)
excel
hacker7071 天前
精进Excel图表:AI赋能,成为Excel图表高手
人工智能·信息可视化·excel
Data-Miner2 天前
结合AI Agent的excel大数据处理技巧
人工智能·excel
如意机反光镜裸2 天前
批量处理Excel数据
excel·批量处理