Python辅助Word+Excel:让办公更高效
上QQ阅读APP看书,第一时间看更新

004 使用嵌套字典拆分多个工作簿

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

图004-1

图004-2

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

在上面这段代码中,myDict={}表示创建空白字典,该空白字典最后将形成嵌套的字典,即在字典之中还有子字典。Python语言的嵌套字典格式如下:myDict={Parentkey1:{ChildKey1:ChildValue1},Parentkey2:{ChildKey2:ChildValue2}…},在此案例中,最后形成的嵌套字典(myDict)的内容如下:

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

在上面这个嵌套字典(myDict)中,“武汉大学”是父键,“口腔医学”是子键,“杜建国”这行数据是(可以有多个)子键值,其余以此类推。

此案例的源文件是MyCode\A310\A310.py。