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

相关推荐
gtstore16 小时前
从 Excel 迁移到仓库管理系统的数据准备与切换方案
excel·数据迁移·仓库管理系统·进销存·信息化实施
ms365copilot16 小时前
我不再自己做 Word、Excel 和 PPT 了,我让 Copilot 直接帮我创建 (1)
word·powerpoint·excel·copilot
cspttty2 天前
2027采购岗求职:大数据管理与应用专业如何把Excel、SQL变成业务能力
excel
ms365copilot2 天前
Excel Copilot 一键定位修改的内容
excel·copilot
帆张芳显3 天前
前端表格公式能力新选择|智表 ZCell 公式引擎深度剖析
前端·excel·canva可画·excel插件
地图小课堂3 天前
Bigemap Pro 导入 Excel、CSV、TXT 点位表格教程
excel
我的愿望是成为富婆3 天前
2027校招准备:从Excel操作到数据分析,还缺业务、SQL与统计思维
sql·数据分析·excel
用户0332126663673 天前
Python 自动化办公:如何从零快速生成结构清晰的 Excel 报表
python·excel
千桐科技3 天前
qData 数据中台专业版功能解析:告别 Excel 与 SQL 拼凑,打通系统合并的可追踪数据链路
数据库·sql·excel·qdata
百事牛科技4 天前
从局部到整体:Excel限制功能的几种实用设置
windows·excel