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

相关推荐
立秋67895 小时前
使用tkinter拖入excel文件并显示
开发语言·python·excel
信必诺5 小时前
Excel 宏录制与VBA编程 ——VBA编程技巧篇二 (合并内容相同连续单元格、取消合并单元格并在每个单元格中保留内容)
excel·vba
Zucker n5 小时前
学会python——在Excel中生成图表数据(python实例十五)
开发语言·python·excel
pictoexcel13 小时前
AI 助力的在线 Excel 表格:真正的革命还是市场噱头?
excel
python爱小白白15 小时前
7/3 第六周 数据库的高级查询
python·excel
木乐乐数据16 小时前
像学Excel 一样学 Pandas系列-创建数据分析维度
数据分析·excel·pandas
Zucker n17 小时前
学会python——在excel中写入数据(python实例十三)
开发语言·python·excel
我会一直21 小时前
Java实现百万级数据从Excel导入到数据库
java·数据库·excel
君的名字1 天前
【Excel操作】Python Pandas判断Excel单元格中数值是否为空
python·excel·pandas
m0_513717791 天前
Excel分组求和
excel