python编辑word与读Excel的经验

前段时间为了解决工作上的一些问题,有听说python有相关的库编辑Office文档很方便,就被骗进坑了。为了避免后来者再遇到相同的坑,所以把这些经验写下来方便后来者。
首先描述一下我打算实现的功能,我打算根据Excel表中的值,来对Word中相应的词进行替换,以达到自动化根据模板处理文档的功能。简单的来说就是批量Ctrl+H和重命名文件。

一、按照Ecxel表格中的一些关键词替换word文档中的相应词,再按照某个关键词保存成单个word文档。
二、标记处两个表格中差异的部分(找出表格中那里被重新编译过)
然后在介绍下我用到的第三方库:docx,xlrd,openxl
值得注意的是,docx库只能编辑docx文件,openxl只能读写xlsx文件,xlrd只能读xls和xlsx文件,使用时要注意文件格式,区别doc与docx,xls与xlsx。

三、认识要操作的对象:
Word:一个文件对应一个doc对象先载入from docx import Document
然后打开文件

doc1 = Document('path')  # 打开模板

这个对象中我主要操作的是,文段paragraphs和表格tables,其他还有很多内部的对象我也没必要一个个去研究,相比之下可视化(shou dong)操作更适合处理那些问题。文段和表格划分的范围比较大,一般以大段落和和文本框划定。文段和表格中的字段中有很多的字段runs,代表了各个不同格式的小段。

这里有一个问题,如果直接用replace替换paragraph.text中的文字是可行的,但是问题是会丢失格式。
而用replace替换run.text中的字符串则不会有丢失格式的问题,不过同时会有run会把你原来想要的文字分割开的问题(比较少见)。产生上述问题的具体原因,看相应的源文件可以知晓。

doc1.save('C:/Users/一个老帅逼/Desktop/模板式资料/'+Sheet.cell_value(i,0)+'.docx')#保存文件

Excel:一个文件对应一个work_book 先载入

import xlrd

蓝后

book=xlrd.open_workbook('filepth.xls')    #打开一个工作簿
sheet1 = book.sheet_by_index(0)  #通过索引取TAB,获取一个工作表
nRows=sheet1.nrows#获取行数
nCols=sheet1.ncols#获取列数
for i in range(nRows):#遍历行
for j in range(nCols)#遍历列

得到行数列数后就可以处理数据了,这里主要是要操作是的是cell也就是单元格,和word的差别是里面没有再分段落
直接用

Sheet.cell_value(i, j)

就可以获取单元格中的字符串。
有一种特殊情况就是获取时间,在xls中的时间是以数字格式(非专业说法)保存的,直接读取只能返回一堆数字。此时就要用转化的函数,下面提供一个案例:

import _datetime
from xlrd import xldate_as_tuple
def changtostr(Sheet,i,j,d):#时间转字符串(sheet-工作表 i-行号 j-列号 d-延后时间)Cell=Sheet.cell_value(i,j)date=datetime(*xldate_as_tuple(Cell, 0))delta=_datetime.timedelta(days=d)outtime=date+deltareturn outtime.strftime('%Y年%m月%d日')

涉及到强制转换等等问题,让我想起了被句柄支配的恐惧。现在对于面向CSDN编程的我来说,暂时不想去探究,拿来用就好了。所以处理时间前先要判断这个是否是时间,用到

if Sheet.cell(i,j).ctype==3:#如果是日期

此外还有其他的类型

ctype_text = {XL_CELL_EMPTY: 'empty',#1XL_CELL_TEXT: 'text',#2XL_CELL_NUMBER: 'number',#3XL_CELL_DATE: 'xldate',#4XL_CELL_BOOLEAN: 'bool',#5XL_CELL_ERROR: 'error',#6XL_CELL_BLANK: 'blank',#7
}

就写到这了,留下来一个坑:Excel的读写问题。如果这篇文章能有点响应下次我抽时间再分享。

python编辑word与读Excel的经验相关推荐

  1. Python将word表格存入excel —— 格式化pg参数手册

    一. 背景 收到一份<PostgreSQL13商用文档之PG参数参考手册>,打算学习一下,打开文档一看,151页T_T.参数虽然有分类,但不太有规律,word文档格式如下: 个人觉得如果用 ...

  2. 使用Python将Word表格嵌入Excel中!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取 Python免费学习资料 ...

  3. python 汇总excel表_【Python】Word表格汇总Excel

    年底了,又到了汇总总结的时候.由于朋友要整理一千多个word表格到excel表上,帮她写了个程序,后来又将它改成更为通用的版本. 其实在这个过程中我找到了有人制作的VBA版,但是使用过程中有BUG [ ...

  4. 使用Python将Word表格转Excel

    今日需求 其实就是把Word中的表格转到Excel中,顺便做一个调整. 如果单单是两个表格,那只要简单的复制黏贴即可,但如果上百了呢?那就得考虑自动化了.好在今天碰到的需求中的原文件格式是比较有规律的 ...

  5. python编辑word书签_小伙发现了Python中编写word文档的库,编辑文字方便多了

    新的一年,小编又和大家见面啦.十分开心又和大家分享干货了~ Word文档相信广大的办公室家族并不陌生吧?今天咱们聊聊Python中一个可以用来读写word文档的Python库,编辑文档分分钟的事情哦~ ...

  6. python统计word表格写入excel

    环境:python 3.5 所用库:os,docx,xlwt pip install一下啦! 收到一份特别恶心的任务,大概是这样的:领导给了一个文件夹,包含了公司不同部门,子公司的项目,文件夹内嵌套了 ...

  7. Python学习笔记_读Excel去重

    读取一个Excel文件,按照某列关键字,如果有重复则去掉 这里不介绍所有的解决办法,只是列出一个办法. 软件环境: OS:Win10 64位 Python 3.7 测试路径:D:\Work\Pytho ...

  8. python远程控制电脑,远程控制或脚本Open Office从Python编辑Word文档

    I want to (preferably on Windows) start Open Office on a particular document, search for a fixed str ...

  9. python编辑word的格式_Python 如何对word文档(.docx)的页眉和页脚进行编辑?

    刚好接了个任务要批量修改一批docx页眉,经过一天面向so编程,以下是代码.因为本人只是业余,代码是能用就好,如有错误请指出. PS1.对齐什么的懒得调了. PS2.不适用于doc格式 #批量修改do ...

最新文章

  1. 如何使用iOS AddressBook
  2. 爬虫插件-XPath Helper下载与安装
  3. MyEclipse 为xml添加本地的dtd文件
  4. mysql 面试题笔记_MYSQL面试题(摘抄/个人笔记)
  5. [Vue CLI 3] 配置 webpack-bundle-analyzer 插件
  6. Hadoop开发环境搭建
  7. vs2008 sp1补丁安装到最后一点点的时候,就无法安装下去了 解决方法[转]
  8. 利用路由器实现VLAN
  9. 运营商进行网络劫持的前生今世+劫持的危害
  10. POJ1759Garland题解
  11. input发送a.jax_Java EE 7和JAX-RS 2.0
  12. mt9638和t972哪个好
  13. xshell 6顶部工具栏找不到
  14. oracle临时表教程,在oracle存储过程中创建临时表
  15. 【教程】花100块钱DIY一台民航客机雷达
  16. 聚力赋能·共享共创|吉鼎科技与厦门6大高校“敏捷开发教学研讨会”圆满成功!
  17. linux什么意思中文翻译,linux中文
  18. oracle中中rowid,oracle中的Rowid和Urowid
  19. 玩转ChatGPT:论文辅助写作(附Claude测评)
  20. layui日历形式展示对应可编辑表格数据

热门文章

  1. SQL优化(数据库调优)
  2. redis进阶持久化、事务、主从复制、集群高可用
  3. Android Studio之简单快速方便的查看数据库的内容
  4. selenium实现12306火车购票网站滑块自动验证登录
  5. 频谱、边际谱、包络谱
  6. 计算机水冷mod大赛,国内玩家专场 Tt水冷MOD大赛等你来战
  7. 初识C语言---野指针
  8. webpack、rollup、parcel优劣?
  9. SpringBoot临时文件目录/data/apps/temp
  10. 苹果iPhone微信分身版如何安装