范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python自动化办公快速地批量处理Excel内容

  前言
  Excel 是我们在工作和日常中使用频率很高,平时,我们对一个 Excel 文件中进行操作,手工进行很方便,但问题是,如果我们遇见需要同时操作多个 Excel 文件,就是一件非常耗时的事情了。你可能对每一个 Excel 文件都进行" 打开 - 复制粘贴 - 保存 "循环的机械工作。是不是感觉很枯燥和乏味呢?
  今天我带大家学习下,如何用 Python 操作Excel进行批量合并和拆分。想了解快速的使用Python进行批量合并和拆分,那我们首先要知道如何用Python操作Excel文件, 如何用 Python 手工操作一个 Excel 文件?
  一、导入excel表格文件处理函数import xlwt
  注意 ,这里的xlwt是python的第三方模块,需要下载安装才能使用。(python第三方库的安装也非常简单,打开命令行,输入pip install xxx就可以了pip install xlrd pip install xlwt
  其中,xlrd 库支持 Excel 读取,xlwt 库支持 Excel 写入。
  二、创建excel表格类型文件book = xlwt.Workbook(encoding="utf-8")
  调用xlwt模块中的Workbook方法来创建一个excel表格类型文件,其中的第一个参数是设置数据的编码格式,这里是’utf-8’的形式。
  三、在excel表格类型文件中建立一张sheet表单sheet = book.add_sheet("豆瓣电影Top250",cell_overwrite_ok=True)
  用book对象调用add_sheet方法来建立一张sheet表,这里面的第一个参数很明显就是设置sheet表格的名称,第二个参数cell_overwrite_ok用于确认同一个cell单元是否可以重设值,这里赋值为True就表示可重设值。
  四、自定义列名col = ("电影详情链接","图片链接","影片中文名","影片外国名","评分","评价数","概况","相关信息")
  用一个元组col自定义列的数量以及各列的属性名,比如我这里是8列,列属性名有"电影详情链接","图片链接"等。
  五、将列属性元组col写进sheet表单中for i in range(0,8):   sheet.write(0,i,col[i])
  很简单,用一个for循环将col元组的元组值(也就是列属性名)写入到sheet表单中。这里调用的是write方法,该方法的第一个参数是行、第二个参数是列、第三个当然就是col元组值。因为这里写进去的是列名,所以都是在第一行。
  六、将数据写进sheet表单中datalist = [["www","www图片","西游记","xiyouji","100分","0人","很好","超级棒"],["www2","www图片2","西游记2","xiyouji2","1000分","1人","很棒","一级棒"]] for i in range(0,2):   data = datalist[i]   for j in range(0,8):       sheet.write(i+1,j,data[j])
  把数据写进sheet表单里也很简单,先用一个for进行每行写入,在每一行中用第二个for循环把每一行当中的列值写进去。
  七、保存excel文件savepath = "excel表格.xls" book.save(savepath)
  只需要调用save方法即可保存到自定义的路径下面。
  完整代码:import xlwt # 创建excel表格类型文件 book = xlwt.Workbook(encoding="utf-8") # 在excel表格类型文件中建立一张sheet表单 sheet = book.add_sheet("豆瓣电影Top250",cell_overwrite_ok=True) # 自定义列名 col = ("电影详情链接","图片链接","影片中文名","影片外国名","评分","评价数","概况","相关信息") # 将列属性元组col写进sheet表单中 for i in range(0,8):   sheet.write(0,i,col[i])  # 将数据写进sheet表单中 datalist = [["www","www图片","西游记","xiyouji","100分","0人","很好","超级棒"],["www2","www图片2","西游记2","xiyouji2","1000分","1人","很棒","一级棒"]] for i in range(0,2):   data = datalist[i]   for j in range(0,8):       sheet.write(i+1,j,data[j]) # 保存excel文件 savepath = "excel表格.xls" book.save(savepath)
  运行截图
  批量合并:怎样实现 Excel 的合并?
  假设你需要对某些工作内容进行问卷调查,一般是先把 Excel 通过工作群分发给所有员工,再把群里收集到的反馈附件汇总成一个文件。
  每个员工上交的Excel如下:
  名字
  第一题
  第二题
  小红
  D
  B
  名字
  第一题
  第二题
  小方
  A
  C
  你要做的工作是汇总,
  名字
  第一题
  第二题
  小红
  D
  B
  小方
  A
  C
  如果是员工人数不多,操作起来还是很方便的。但是当员工数量几万个人时,这将是一件非常费时的事情。
  我想你可能会想,有没有什么好的方法呢?那是必然的,可以用Python和相关的第三库实现。我们来看看具体实现过程:
  首先,根据上面Excel数据生成过程,我们创建2张Excel表:import xlwt # 创建excel表格类型文件 table = xlwt.Workbook(encoding="utf-8") # 在excel表格类型文件中建立一张sheet表单 sheet = table.add_sheet("sheet1",cell_overwrite_ok=True) # 自定义列名 col = ("名字","第一题","第二题") # 将列属性元组col写进sheet表单中 for i in range(0,3):   sheet.write(0,i,col[i])  # 将数据写进sheet表单中 data = ["小方","A","C"] for j in range(0,3):   sheet.write(1,j,data[j]) # 保存excel文件 savepath = "excel1.xls" table.save(savepath)
  import xlwt # 创建excel表格类型文件 table = xlwt.Workbook(encoding="utf-8") # 在excel表格类型文件中建立一张sheet表单 sheet = table.add_sheet("sheet1",cell_overwrite_ok=True) # 自定义列名 col = ("名字","第一题","第二题") # 将列属性元组col写进sheet表单中 for i in range(0,3):   sheet.write(0,i,col[i])  # 将数据写进sheet表单中 data = ["小红","D","B"] for j in range(0,3):   sheet.write(1,j,data[j]) # 保存excel文件 savepath = "excel2.xls" table.save(savepath)
  好了,我们数据已经准备好了,接下来,看看如何汇总吧!
  其工作流程定义为三个步骤:
  1. 找到整个工作过程当中重复操作的部分;
  2.将重复操作的部分需要哪些手工操作找出来,使用 Python 编写程序代替手工操作的部
  分;
  3. 对重复的部分,使用循环语句进行批量处理。 import xlrd import xlwt from pathlib import Path, PurePath # 导入excel和文件操作库 # 指定要合并excel的路径 src_path = "/content" # 指定合并完成的路径 dst_file = "结果.xlsx" # 取得该目录下所有的xlsx格式文件 p = Path(src_path) files = [x for x in p.iterdir() if PurePath(x).match("*.xls")] print(files) # 准备一个列表存放读取结果 content = [] # 对每一个文件进行重复处理 for file in files:   data = xlrd.open_workbook(file)   table = data.sheets()[0]   # 取得每一项的结果   answer0 = table.cell_value(rowx=1, colx=0)   answer1 = table.cell_value(rowx=1, colx=1)   answer2 = table.cell_value(rowx=1, colx=2)   temp = f"{answer0},{answer1},{answer2}"   # 合并为一行先存储起来   content.append(temp.split(","))   print(temp)   # 输出   # 小红,D,B   # 小方,A,C   # 准备写入文件的表头 table_header = ["名字", "第一题", "第二题"] workbook = xlwt.Workbook(encoding="utf-8") xlsheet = workbook.add_sheet("统计结果") # 写入表头 row = 0 col = 0 for cell_header in table_header:   xlsheet.write(row, col, cell_header)   col += 1  # 向下移动一行 row += 1 # 取出每一行内容 for line in content:   col = 0   # 取出每个单元格内容   for cell in line:   # 写入内容     xlsheet.write(row, col, cell)     # 向右移动一个单元格     col += 1   # 向下移动一行   row += 1 # 保存最终结果 workbook.save(dst_file)
  我使用了 for 语句依次获取 src_path 变量指向的路径下所有的文件。同时,为了避免这个目录里的文件类型过多,我使用一个 if 语句用于条件判断,只提取 .xls 结尾的文件。
  合并后的效果如下图:
  名字
  第一题
  第二题
  小红
  D
  B
  小方
  A
  C
  批量拆分:怎样实现 Excel 的拆分?
  对于批量操作 Excel,还有一种情况是批量拆分。比如很多公司会用 Excel 记录和统计员工的薪水、记录货物信息、记录客户情况等数据。这些数据越来越多之后,文件会越来越大,打开文件和查找速度就会变得很慢,最后只好按照某些列进行 Excel 的拆分。
  核心代码如下for line in range(1,employee_number):   content = table.row_values(rowx=line, start_colx=0, end_colx=None)   # 将表头和员工数量重新组成一个新的文件   new_content = []   # 增加表头到要写入的内容中   new_content.append(salary_header)   # 增加员工工资到要写入的内容中   new_content.append(content)   # 调用自定义函数write_to_file()写入新的文件   write_to_file(filename = content[1], cnt = new_content)
  文件的批量拆分也是通过循环来实现逐行处理的功能的,但是你需要注意拆分以后的要保存的文件名称不要重复,不然很容易导致 Excel 中只有最后一次循环写入的内容。

为什么美国要竭尽全力去封杀海外抖音,只有美国封锁吗其实这个想要理清楚这个原因,单从某个方面某个方面去分析的话,就会显得太为单一且不够充分!1首先你要知道海外版抖音是什么2国外目前的主流媒体渠道(就是民众获取信息的平台)都控制在谁手又28个!美国实体清单的影响及应对中美科技的巅峰之战据财联社3月3日消息,美国商务部发布公告,以涉及国家安全等无理理由,将28个中国实体列入实体清单,包括第四范式香港华大基因科技服务有限公司浪潮集团龙芯中科盛科通信等。这次被美国列入黑色霉菌入侵美国小镇,铺天盖地!居民痛苦不堪,有人罹患癌症?最近,林奇堡小镇的遭遇在美国引起了轰动。这座小镇被一种霉菌入侵黑色霉菌笼罩了小镇的每一个角落,铺天盖地地侵入到了所有人的生活之中。一眼望过去,小镇宛如末日废土一般,上上下下都被黑色福建一小伙来广州玩,花22元点了一份饭,端上来还以为自己看花眼广州又叫作花城或者羊城,除了是广东省的省会,还是一座国家历史文化名城,有着源远流长的文化底蕴和美食底蕴,每年都会吸引无数游客来旅游观光。作为十大美食之都之一,民间一直有食在广州的说3D打印周报523DSystems被罚2700万美元,麻省理工3D打印心脏等2023年3月5日,3D打印周报第52期,以下是本周3D打印行业发生的事情,包括大事件行业动态趣制造融资上市新产品等内容。大事件罚款2700万美元!3DSystems违反美国对中国石油美元,该结算了天下苦石油美元久矣,更苦美国霸权久矣。作者崔传刚近日,作为中东产油大国之一的伊拉克宣布,将允许与中国的贸易直接以人民币结算。这一消息引发了全球政经界的高度关注。伊拉克称,此次调整主对中国逆差3829亿美元,却害怕人民币升值,美国背后盘算什么?一对中国逆差3829亿美元,却害怕人民币升值,美国背后盘算什么?人民币如果大幅度升值,无疑会给中国出口企业带来压力因为人民币升值,也会让中国出口的商品价格贵了,会削弱中国商品的全球美财富杂志全球超级富豪去年损失10万亿美元美国财富杂志3月2日文章,原题去年,全球超级富豪遭受了10万亿美元的损失,但现在是贪婪的时候了房地产咨询公司莱坊在第17期年度财富报告中写道资产净值高于3000万美元的个人,其传统广州南沙打造精明增长的高质量样本新华社广州3月3日电(记者陈凯星马晓澄周颖)力争全年地区生产总值增长10以上规上工业产值增长16以上固定资产投资增长30以上这是广州市南沙区定下的2023年发展目标。高速增长背后,恰到好处的距离,有多远?既非不亲近,也非极亲近恰到好处,把握尺度方能有效随顺众生菩萨恒顺众生,需要和他们保持适度的关系,这点非常重要。把握不好尺度,比如对他人过于热情,会让人产生负担对他人过于冷漠,则会让桃花之酿头条陌上对白(现代诗一首)远远地又是这样的季节在三月里路上的人们似乎都格外地精神挥一挥手一下子身体就像是生长出了四季月儿在深海里探出了头像是等一场风吹来一阵大风吹来却是雨雨淅淅沥沥
恒大究竟是如何欠下两万亿的?这些钱花在哪里去了?恒大究竟是怎样欠下两万亿的?那些钱到底去了哪里?如今又还了多少呢?当恒大被曝出欠款两万亿的时候,很多人都已经懵了,因为这个数字太庞大了。如果单纯地说没有直观感受,那我打个比方,你可iPhone14或成史上销量最差机型富士康已拆除部分生产线转产高端机没有任何创新和变化的iPhone14,终究还是败了。受iPhone14销量不及预期影响,郑州富士康拆除iPhone14部分产线。日前,富士康内部人士透露,有部分iPhone14产线卫生健康宣传日世界避孕日知性智行爱要有一套世界避孕日每年的9月26日为世界避孕日。2022年9月26日是第16个世界避孕日,今年的宣传主题是知性智行爱要有一套。世界避孕日是一个国际性的纪念日,旨在向年轻人倡导科学避孕意识,刚入场就ampampquot亏ampampquot!眼茅35亿定增出炉,多家头部公募现身,外资巨头也来捧场眼茅爱尔眼科的35亿定增结果出炉。9月23日晚间,爱尔眼科披露了最新的定增发行结果,此次定增募资总额约35。36亿元,发行股数约为1。33亿股,发行价格为26。49元股。值得注意的整容耍大牌自甘堕落成网红,8位正女郎近况差距好大9月23日是女演员白鹿的生日,她的伯乐于正卡点为她送出了祝福,还表示我永远是你坚强的后盾,尽显对自己艺人的宠爱。于正自打进入影视圈以来,虽然身上的争议很多,又非常爱蹭热度,但也不得退休吟(外三首)七律退休人生易老天难老,甲子一轮转瞬消。今日一拿退休证,顿觉轻快乐淘淘。闲来静坐翻唐宋,兴至轻吟过两招。体健心怡诸事顺,复登胜迹自逍遥。鹧鸪天自述打小心中就有梦,龙门一跃仍司农,回乌克兰国防部副部长公布乌军实际损失人数乌克兰国防部副部长安娜马尔亚尔表示,从今年2月俄罗斯发起对乌克兰的入侵至今,如果不考虑乌军在马里乌波尔的战损,实际上乌克兰武装部队只损失了9000多人,并非像俄罗斯宣传的那样,战死突发!广东中山一高速在建匝道钢箱梁掉落,一货车车厢被砸,有工人受伤!事故原因正调查点蓝字关注,不迷路来源广东交通江门发布江门交警中山交警等今日(24日)13时许,中山应急管理通报了广东中山市西环高速在建工程发生的一宗事故。据中山应急管理微信公众号于1342发布的英媒本赛季国家队英超进球数持平,萨拉赫正找回最佳状态直播吧9月24日讯据talksport网报道,萨拉赫正在回到自己的最佳状态。在为埃及队梅开二度后,他本赛季的国家队与英超联赛进球数已经持平。本赛季开始后,萨拉赫一直在努力寻找进球。9月24日超级大乐透开奖详情一共5注一等奖,单注奖金770万元2022年9月24日,超级大乐透第22110期进行了开奖,当期一共开出5注一等奖,单注奖金770万元,不过很遗憾没有一注进行追加投注。一等奖花落五地,分别落户于江苏(基本1注)浙江CBA官宣最新赛程,杜锋首轮对决马布里,周鹏回娘家探亲时间确定新赛季CBA常规赛即将在10月10日打响,20支球队的备战已经到了最后的冲刺阶段。CBA在开赛前的15天,公布了第一阶段赛会制的赛程。当然了,首个比赛日的重头戏,肯定是辽宁队与浙江