首页 文章 精选 留言 我的

精选列表

搜索[办公套件],共10000篇文章
优秀的个人博客,低调大师

Python办公自动化之从Word到Excel

云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改) 一共有近2600条类似格式的表格细栏,每个栏目包括的信息有: 日期发文单位文号标题签收栏需要提取其中加粗的这三项内容到Excel表格中存储,表格样式如下: 也就是需要将收文时间、文件标题、文号填到指定位置,同时需要将时间修改为标准格式,如果是完全手动复制和修改时间,依照一个条目10s的时间计算,一分钟可以完成6条,那么最快也需要: 而这类格式规整的文件整理非常适合用Python来执行,好的那么接下来请Python出场,必要的信息我在代码中以注释信息呈现。 首先使用Python将Word文件导入 # 导入需要的库docx from docx import Document # 指定文件存放的路径 path = r'C:\Users\word.docx' # 读取文件 document = Document(path) # 读取word中的所有表格 tables = document.tables 再把问题逐个划分,首先尝试获取第一张表第一个文件条目的三个所需信息 # 获取第一张表 table0 = tables[0] 仔细观察可以发现一个文件条目占据了3行,所以对表格全部行循环迭代时可以设步长为3 注意观察表格,按照row和cell把所需内容解析清楚 # 在全局放一个变量用来计数填序号 n = 0 for i in range(0, len(table0.rows) + 1, 3): # 日期 date = table0.cell(i, 1).text # 标题 title = table0.cell(i + 1, 1).text.strip() # 文号 dfn = tables[j].cell(i, 3).text.strip() print(n, date, tite, dfn) 接下来需要解决的是,时间我们获取的是 2/1 这种 日/月的形式。我们需要转化成 YYYY-MM-DD格式,而这利用到datetime包的strptime和strftime函数: strptime: 解析字符串中蕴含的时间strftime: 转化成所需的时间格式 import datetime n = 0 for i in range(0, len(table0.rows) + 1, 3): # 日期 date = table0.cell(i, 1).text # 有的条目时间是空的,这里不做过多判别 if '/' in date: date = datetime.datetime.strptime(date, '%d/%m').strftime('2020-%m-%d') else: date = '-' # 标题 title = table0.cell(i + 1, 1).text.strip() # 文号 dfn = tables[j].cell(i, 3).text.strip() print(n, date, tite, dfn) 这样一张表的内容解析就完成了,注意这里用的是table[0]即第一张表,遍历所有的表加一个嵌套循环就可以,另外也可以捕获异常增加程序灵活性 n = 0 for j in range(len(tables)): for i in range(0, len(tables[j].rows)+1, 3): try: # 日期 date = tables[j].cell(i, 1).text if '/' in date: date = datetime.datetime.strptime(date, '%d/%m').strftime('2020-%m-%d') else: date = '-' # 标题 title = tables[j].cell(i + 1, 1).text.strip() # 文号 dfn = tables[j].cell(i, 3).text.strip() n += 1 print(n, date, title, dfn) except Exception as error: # 捕获异常,也可以用log写到日志里方便查看和管理 print(error) continue 信息解析和获取完成就可以导出了,用到的包是openpyxl from openpyxl import Workbook # 实例化 wb = Workbook() # 获取当前sheet sheet = wb.active # 设立表头 header = ['序号', '收文时间', '办文编号', '文件标题', '文号', '备注'] sheet.append(header) 在最内层解析循环的末尾加上如下代码即可 row = [n, date, ' ', title, dfn, ' '] sheet.append(row) 线程的最后记得保存 wb.save(r'C:\Users\20200420.xlsx') 运行时间在10分钟左右,大概离开了一会程序就执行结束了 最后附上完整代码,代码很简单,理清思路最重要 from docx import Document import datetime from openpyxl import Workbook wb = Workbook() sheet = wb.active header = ['序号', '收文时间', '办文编号', '文件标题', '文号', '备注'] sheet.append(header) path = r'C:\Users\word.docx' document = Document(path) tables = document.tables n = 0 for j in range(len(tables)): for i in range(0, len(tables[j].rows)+1, 3): try: # 日期 date = tables[j].cell(i, 1).text if '/' in date: date = datetime.datetime.strptime(date, '%d/%m').strftime('2020-%m-%d') else: date = '-' # 标题 title = tables[j].cell(i + 1, 1).text.strip() # 文号 dfn = tables[j].cell(i, 3).text.strip() n += 1 print(n, date, title, dfn) row = [n, date, ' ', title, dfn, ' '] sheet.append(row) except Exception as error: # 捕获异常,也可以用log写到日志里方便查看和管理 print(error) continue wb.save(r'C:\Users\20200420.xlsx') 【云栖号在线课堂】每天都有产品技术专家分享!课程地址:https://yqh.aliyun.com/live 立即加入社群,与专家面对面,及时了解课程最新动态!【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK 原文发布时间:2020-04-21本文作者:陈熹本文来自:“51CTO”,了解相关信息可以关注“51CTO”

优秀的个人博客,低调大师

我,一台被远程办公逼疯了的手机

大家好,我是王雪梨的手机。 今天是我和她宅在一起的第三周,不知道她感觉怎么样,反正我快疯了。 7:00AM 上班第一天,早上七点我照常叫她起床,并且做好了她闭眼选择「稍后提醒」的准备。 没想到她说了句「嘿,Siri,一个半小时之后叫我起床」就又去睡觉了。 第一天就准备迟到?看来她是要打破一周迟到三次的记录了。 8:30AM 八点半,她终于起床了。按照她平时的习惯,怎么着也得收拾一个小时才能出门,铁定要迟到了。 我的余光看到她在吹头发、画眉毛,然后……就没了?平时的防晒粉底遮瑕眼影眼线腮红修容口红呢? 为什么外套底下还是睡裤?是谁给你这么邋遢的勇气,梁静茹吗?🤷‍♀️ 10:00AM 原来是开什么视频会,怪不得。🤷‍♀️ 也真是难为她了,还要从这么乱的房间里找到一块整洁的背景。 诶诶诶,我眼前怎么黑了。她的猫又来捣乱了,快把它扔下去! 11:30AM 长时间的自我隔离,甚至让她有了自言自语的习惯。 「今天方哥的脸好像更方了」 「他们的睡衣为啥都是格子的」 「咋还没开完,我都饿了」 …… 喂,声音还没关呢!🤦‍♀️ 12:00PM 终于到了午饭时间,本来以为我可以趁她做饭的时候休息一下,结果竟然被一起带进了厨房? 哦,忘了她根本就不会做饭了,得看菜谱🤷‍♀️ 经过一个小时「兵荒马乱」的做饭过程,厨房早就成了「战损版」,甚至连我身上都溅满了油花。 没等休息又被她拖去拍照修图发朋友圈…… 啊,我累了,我真的累了。 3:55PM 最近口罩好像成了紧俏货,每天听她打电话都是和朋友说哪里有口罩快去抢之类的。 这不,我最近又多了个任务,每天下午 3:55 提醒她去抢口罩。 时间一到,她就一直猛戳「立即购买」,就算快把我戳出内伤了也只能得到「已售罄」的结果。 7:00PM 下班了!我终于能趁她看电视的时候休息一会儿了。 「叮」——又有 app 来敲门了,让我康康是哪个这么没有眼力见儿。 哦,是飞书啊🙂 还没等我反应过来,她已经听出提示音,捞起我面带职业假笑回了一句「在的」…… 12:00AM 灰姑娘一到午夜 12 点就会和王子分离,而我到那时候就变成了她和盒马小哥的鹊桥。 「鸡胸、西蓝花、薯片、酸奶……」她边选购边期待着和盒马小哥明天的相遇。 因为选购太久跳出来「小哥已约满」的提示,让她那晚比失恋还伤心。 不用早起通勤、不用化妆、上班休息全都在家..... 原来这就是她一直念叨的什么「SOHO」,这么看来也没有多好。 虽然这段时间有机会体验了一把人类中的「宅」,但我还是想用我的镜头看到上班路上朝气蓬勃的人类、晒太阳的流浪猫、傍晚的夕阳,让我的运动传感器也感受一下很久都没有过的悠闲散步。 你们呢?等这段时间过去,最想带着你们的手机拍摄什么风景呢? 1:00AM 晚上一点,正准备睡觉的我突然被一把捞起来。 只见雪梨打开钉钉,打了一个下班卡……

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册