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

相关推荐
蓝创工坊Blue Foundry5 小时前
图片文字提取到 Excel:批量任务如何先定义要交付的字段
运维·服务器·开发语言·数据库·自动化·ocr·excel
用户298698530146 小时前
Python 实现 Excel 与 Markdown 互转的实用指南
后端·python·excel
2501_930707788 小时前
如何使用C#代码在 Excel 中编辑或删除批注
excel
SunnyDays10111 天前
Python Excel 切片器操作详解:自动创建智能交互式报表
python·excel·数据筛选·切片器
观远数据1 天前
Excel到数据资产池:文件数据入湖的治理规范怎么建
前端·javascript·excel
蓝创工坊Blue Foundry1 天前
PDF 批量提取指定内容到 Excel:按字段整理多个 PDF 的方法
pdf·ocr·excel·文心一言·paddlepaddle·paddle
用户298698530141 天前
React 项目中灵活管理 Excel 工作表:增删与移动
javascript·react.js·excel
程序猿乐锅2 天前
【苍穹外卖 Day12| Excel 入门】
excel
用户298698530142 天前
Python 数据处理:XML 与 Excel 互转的实用指南
后端·python·excel
xiaopai9453 天前
采购系统和Excel表格区别:钢结构项目物资管理的真实较量
excel·建米软件·采购系统