docx模块:对word文档的处理

读取docx文件

from docx import Document   # word处理模块path = r"C:\Users\30797\Desktop\python\docx.docx"
document = Document(path)   # 读取docx文件

处理段落(paragraphs)

1、遍历输出段落

paragraphs = document.paragraphs
for paragraph in paragraphs:    # 遍历所有段落print(paragraph.text)

2、读取第二段样式

runs = paragraphs[1].runs    # 读取第二段所有样式
for run in runs:    # 遍历输出所有样式print(run.text)

3、将 "Jan 1 2020" 改为 "Jan 1 2021" 并且不改变样式。由上可知,"Jan 1 2020" 的样式为 "runs[3]" ,所以代码如下:

runs[3].text = "Jan 1 2021" # 更改日期内容且不改变样式
document.save(path) # 保存更改

注:"paragraphs[1].text = "Date:Jan 1 2021" 也能更改内容,但不同的是它将会改变样式

4、增加一段

document.add_paragraph("End")   # 增加一段
document.save(path) # 保存更改

处理表格(tables)

1、遍历输出表格

tables = document.tables
for table in tables:    # 遍历所有表格for row in range(len(table.rows)):  # 遍历行for col in range(len(table.columns)):  # 遍历列print(table.cell(row, col).text, end=' ')    # 输出每格的内容print()

2、将 "2020" 改为 "2021" 并且不改变样式

tables[0].cell(1, 2).paragraphs[0].runs[0].text = "2021"    # 2020的位置为第1个表格,第2行第3列,段落1,样式1
document.save(path) # 保存更改

win32com模块:直接操作office软件

from win32com.client import Dispatch, constantsw = Dispatch('Word.Application')
# 或者使用下面的方法,使用启动独立的进程:
# w = DispatchEx('Word.Application')# 后台运行,不显示,不警告
w.Visible = 0
w.DisplayAlerts = 0# 打开新的文件
doc = w.Documents.Open( FileName = filenamein )
# worddoc = w.Documents.Add() # 创建新的文档# 插入文字
myRange = doc.Range(0,0)
myRange.InsertBefore('Hello from Python!')# 使用样式
wordSel = myRange.Select()
wordSel.Style = constants.wdStyleHeading1# 正文文字替换
w.Selection.Find.ClearFormatting()
w.Selection.Find.Replacement.ClearFormatting()
w.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)# 页眉文字替换
w.ActiveDocument.Sections[0].Headers[0].Range.Find.ClearFormatting()
w.ActiveDocument.Sections[0].Headers[0].Range.Find.Replacement.ClearFormatting()
w.ActiveDocument.Sections[0].Headers[0].Range.Find.Execute(OldStr, False, False, False, False, False, True, 1, False, NewStr, 2)# 表格操作
doc.Tables[0].Rows[0].Cells[0].Range.Text ='123123'
worddoc.Tables[0].Rows.Add() # 增加一行# 转换为html
wc = win32com.client.constants
w.ActiveDocument.WebOptions.RelyOnCSS = 1
w.ActiveDocument.WebOptions.OptimizeForBrowser = 1
w.ActiveDocument.WebOptions.BrowserLevel = 0 # constants.wdBrowserLevelV4
w.ActiveDocument.WebOptions.OrganizeInFolder = 0
w.ActiveDocument.WebOptions.UseLongFileNames = 1
w.ActiveDocument.WebOptions.RelyOnVML = 0
w.ActiveDocument.WebOptions.AllowPNG = 1
w.ActiveDocument.SaveAs( FileName = filenameout, FileFormat = wc.wdFormatHTML )# 打印
doc.PrintOut()# 关闭
# doc.Close()
w.Documents.Close(wc.wdDoNotSaveChanges)
w.Quit()

openpyxl模块:对excel文档的处理

功能 方法
创建工作薄 wb = openpyxl.Workbook() 
打开工作簿 wb = openpyxl.load_workbook('c:\name.xlsx')
获取所有表名 wb.sheetnames
按表名选取表单 sh = wb['sheet_name']
按序号选取表单 sh = wb[wb.sheetnames[0]]
新增表单 wb.create_sheet('sheet_name')
复制表单 sh_copy=wb.copy_worksheet(sh_source)
删除表单 wb.remove(wb['sheet_name'])
更改表名 sh_copy.title = 'change_name'
读取第一行、第一列的数据(推荐) ce = sh.cell(row = 1,column = 1).value
写入第一行、第四列的数据 value = 'hello' sh.cell(row = 1,column = 4,value = 'hello')
按行读取数据 row_data = list(sh.rows)
按列读取数据 columns_data = list(sh.columns)
获取最大行总数、最大列总数 sh.max_row、sh.max_column
保存工作薄 wb.save('c:\name.xlsx')
关闭工作薄 wb.close() 
from openpyxl import load_workbook, comments# 加载、读取excel溥
workbook = load_workbook(path)# 读取表格
sheet = workbook['Sheetname']# 表最大行、列数
row = sheet.max_row
column = sheet.max_column# 读取x行、y列单元格的值
value = sheet.cell(x, y).value# 为x行、y列单元格添加注释
sheet.cell(x, y).comment = comments.Comment('Content', 'Auther')# 保存工作溥
workbook.save(path)

【script】python3中的docx、win32com和openpyxl模块相关推荐

  1. python3中超级好用的日志模块-loguru模块详解

    一. 使用logging模块时 用python写代码时,logging模块最基本的几行配置,如下: import logging logging.basicConfig(level=logging.I ...

  2. 学习笔记之python3中关于日历(calendar)模块

    1 calendar模块 日历模块函数与日历相关,其中星期一默认为每周第一天,星期天为默认的最后一天:更改此设置需要调用calendar.setfirstweekday()函数. 1.1 calend ...

  3. [转载] 使用openpyxl模块向Excel中插入图片

    参考链接: Python | 使用openpyxl模块在Excel工作表中绘制图表 2 使用openpyxl模块向Excel中插入图片 示例Python实现结果展示 示例 向一个Excel表格中A1位 ...

  4. 20230507使用python3批量转换DOCX文档为TXT

    20230507使用python3批量转换DOCX文档为TXT 2023/5/7 20:22 WIN10使用python3.11 # – coding: gbk – import os from pd ...

  5. 20230508在Ubuntu22.04下使用python3批量转换DOCX文档为TXT

    20230508在Ubuntu22.04下使用python3批量转换DOCX文档为TXT 2023/5/8 16:27 在WIN10下请参考本文,在Ubuntu22.04下需要不通的插件! https ...

  6. python3中使用requests库出现的编码问题

    最近在使用python完成爬虫任务时遇到了编码问题,查看了很多资料,现总结一些编码的知识. 1.编码解码 1.1 字符和字节 "字节"是一个8位的物理存贮单元.而"字符& ...

  7. #Python3中tornado高并发框架

    Python3中tornado高并发框架 简介: Tornado是一种 Web 服务器软件的开源版本.Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别 ...

  8. 对python3中pathlib库的Path类的使用详解

    原文连接   https://www.jb51.net/article/148789.htm 1.调用库 ? 1 from pathlib import 2.创建Path对象 ? 1 2 3 4 5 ...

  9. Python3中typing模块介绍

    typing.py的源码在:https://github.com/python/cpython/blob/main/Lib/typing.py.此模块为类型提示(Type Hints)提供运行时支持( ...

最新文章

  1. oracle 使用nfs挂载的目录不能进行归档
  2. Python-EEG工具库MNE中文教程(13)-“bad“通道介绍
  3. Struts2一对多配置
  4. C语言中#define中的一些特殊用法
  5. 三、项目经理的角色【PMP 】
  6. 传统手工特征深度特征【转载】
  7. WEB UI设计尺寸规范
  8. 【React Router 6 快速上手一】重定向Navigate / useRoutes路由表 / 嵌套路由Outlet
  9. 如何做好App性能测试
  10. VideoCapture访问网络摄像头
  11. etax导入账户不让勾选_eTax竟然可以批量导入海关进口增值税缴款书,只需这样做!...
  12. 简单学习识谱(六线谱)
  13. Linux系统如何安装Python?新手教程
  14. 【python掩膜及多子图colorbar】
  15. python判断素数_小白学Python | 你还在说你入不了门吗
  16. QQ侧滑菜单的实现和拓展-DrawerLayout
  17. Praat脚本-007 | 计算目录里音频或者TextGrid总时长
  18. EXCEL 2010怎样固定表头
  19. 如何计算黄金分割比例
  20. 冰川融化的手工香皂:感想

热门文章

  1. 蝙蝠侠一键改udid软件_对于您的第一个HTML代码,让我们帮助蝙蝠侠写一封情书...
  2. 修改webpack配置,在react中使用less
  3. java switch case多个条件_JAVA基础程序设计之判断与循环
  4. python并发编程之多进程、多线程、异步和协程
  5. 漫步线性代数十二——网络
  6. 第三讲 关系映射反演原则
  7. 一张图教你如何选择机器学习算法
  8. Python编程高手之路——第三章:数据类型
  9. Ubuntu16.04下,Firefox每次打开新网页都是以新建Windows而不是Tab的解决方案:
  10. Ubuntu系统安装Ruby的三种方法