python编辑word与读Excel的经验
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的经验相关推荐
- Python将word表格存入excel —— 格式化pg参数手册
一. 背景 收到一份<PostgreSQL13商用文档之PG参数参考手册>,打算学习一下,打开文档一看,151页T_T.参数虽然有分类,但不太有规律,word文档格式如下: 个人觉得如果用 ...
- 使用Python将Word表格嵌入Excel中!
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取 Python免费学习资料 ...
- python 汇总excel表_【Python】Word表格汇总Excel
年底了,又到了汇总总结的时候.由于朋友要整理一千多个word表格到excel表上,帮她写了个程序,后来又将它改成更为通用的版本. 其实在这个过程中我找到了有人制作的VBA版,但是使用过程中有BUG [ ...
- 使用Python将Word表格转Excel
今日需求 其实就是把Word中的表格转到Excel中,顺便做一个调整. 如果单单是两个表格,那只要简单的复制黏贴即可,但如果上百了呢?那就得考虑自动化了.好在今天碰到的需求中的原文件格式是比较有规律的 ...
- python编辑word书签_小伙发现了Python中编写word文档的库,编辑文字方便多了
新的一年,小编又和大家见面啦.十分开心又和大家分享干货了~ Word文档相信广大的办公室家族并不陌生吧?今天咱们聊聊Python中一个可以用来读写word文档的Python库,编辑文档分分钟的事情哦~ ...
- python统计word表格写入excel
环境:python 3.5 所用库:os,docx,xlwt pip install一下啦! 收到一份特别恶心的任务,大概是这样的:领导给了一个文件夹,包含了公司不同部门,子公司的项目,文件夹内嵌套了 ...
- Python学习笔记_读Excel去重
读取一个Excel文件,按照某列关键字,如果有重复则去掉 这里不介绍所有的解决办法,只是列出一个办法. 软件环境: OS:Win10 64位 Python 3.7 测试路径:D:\Work\Pytho ...
- python远程控制电脑,远程控制或脚本Open Office从Python编辑Word文档
I want to (preferably on Windows) start Open Office on a particular document, search for a fixed str ...
- python编辑word的格式_Python 如何对word文档(.docx)的页眉和页脚进行编辑?
刚好接了个任务要批量修改一批docx页眉,经过一天面向so编程,以下是代码.因为本人只是业余,代码是能用就好,如有错误请指出. PS1.对齐什么的懒得调了. PS2.不适用于doc格式 #批量修改do ...
最新文章
- 如何使用iOS AddressBook
- 爬虫插件-XPath Helper下载与安装
- MyEclipse 为xml添加本地的dtd文件
- mysql 面试题笔记_MYSQL面试题(摘抄/个人笔记)
- [Vue CLI 3] 配置 webpack-bundle-analyzer 插件
- Hadoop开发环境搭建
- vs2008 sp1补丁安装到最后一点点的时候,就无法安装下去了 解决方法[转]
- 利用路由器实现VLAN
- 运营商进行网络劫持的前生今世+劫持的危害
- POJ1759Garland题解
- input发送a.jax_Java EE 7和JAX-RS 2.0
- mt9638和t972哪个好
- xshell 6顶部工具栏找不到
- oracle临时表教程,在oracle存储过程中创建临时表
- 【教程】花100块钱DIY一台民航客机雷达
- 聚力赋能·共享共创|吉鼎科技与厦门6大高校“敏捷开发教学研讨会”圆满成功!
- linux什么意思中文翻译,linux中文
- oracle中中rowid,oracle中的Rowid和Urowid
- 玩转ChatGPT:论文辅助写作(附Claude测评)
- layui日历形式展示对应可编辑表格数据