一、 背景

收到一份《PostgreSQL13商用文档之PG参数参考手册》,打算学习一下,打开文档一看,151页T_T。参数虽然有分类,但不太有规律,word文档格式如下:

个人觉得如果用excel来存这个表格,并且按分类来排序或者分sheet,查阅或者学习会更方便。

由于参数实在太多,靠手工复制这个周末就不要了,之前学爬虫的时候学习了Python操作excel,想必它也能操作word,于是找文章学习了一会。

二、 整体思路

1. 格式化文档

手动去掉不需要的段落及换行符,替换完的文档长这样

2. 程序操作

  • pip安装 python-docx(注意不是docx,否则会报错)和openpyxl 两个模块
  • 获取每一个参数类别(这里就是word的每个段落内容)
from docx import Document# 实例化word文档
doc = Document(r'D:\postgresql\PG13参数参考手册.docx')for paragraph in doc.paragraphs:print(paragraph.text)

  • 给每个表格加一行,存入上面的参数类别(格式化后),保存word文档。注意程序修改word文档的时候本地不要打开这个文档,否则会报错。
from docx import Document# 格式化word文档,word表格新增一行,保存参数分类doc = Document(r'D:\postgresql\PG13参数参考手册.docx')i=0
type_list=[]
for paragraph in doc.paragraphs:type_list.append(paragraph.text)for table in doc.tables:# 第一次执行时要打开该注释# table.add_row()table.cell(-1,0).text = "参数分类"# 截取内容部分,去掉编号,.,--等,去掉头尾空格table.cell(-1,1).text=type_list[i].split(".")[-1].split("--")[-1].strip()i=i+1doc.save(r'D:\postgresql\PG13参数参考手册.docx')

  • 获取word表格第二列的每一行,存入一个list
  • 将每个list append到excel,保存即可。也注意程序修改excel文档的时候本地不要打开这个文档,否则会报错。
from docx import Document
from openpyxl import Workbook# 实例化word文档
doc = Document(r'D:\postgresql\PG13参数参考手册.docx')# word表格存入excel# 实例化excel文档
wb = Workbook()# 获取当前sheet
sheet = wb.active# 设立表头
header = ['参数名称', '数据类型', '默认值', '取值范围', '参数单位', '参数含义','是否可session级修改','修改后何时生效','参数分类']
sheet.append(header)# 取每个表格第二列的值
for table in doc.tables:row_list = []for i in range(len(table.rows)):row_list.append(table.cell(i,1).text)sheet.append(row_list)wb.save(r'D:\postgresql\PG13参数参考手册.xlsx')

两三秒它就跑完了~ 执行结果如下:

3. excel格式化

简单调整下excel格式,按参数分类排序即可

三、 实现代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time  : 2022-07-08 23:57
# @Author: Hehuyi_In
# @File  : word_to_excel.pyfrom docx import Document
from openpyxl import Workbook# 格式化word文档,word表格新增一行,保存参数分类# 实例化word文档
doc = Document(r'D:\postgresql\PG13参数参考手册.docx')i=0
type_list=[]
for paragraph in doc.paragraphs:type_list.append(paragraph.text)for table in doc.tables:# 第一次执行时要打开该注释# table.add_row()table.cell(-1,0).text = "参数分类"# 截取内容部分,去掉编号,.,--等,去掉头尾空格table.cell(-1,1).text=type_list[i].split(".")[-1].split("--")[-1].strip()i=i+1doc.save(r'D:\postgresql\PG13参数参考手册.docx')# word表格存入excel# 实例化excel文档
wb = Workbook()
# 获取当前sheet
sheet = wb.active# 设立表头
header = ['参数名称', '数据类型', '默认值', '取值范围', '参数单位', '参数含义','是否可session级修改','修改后何时生效','参数分类']
sheet.append(header)# 输出表格中每行每列的值
# for table in doc.tables:
#     for i in range(len(table.rows)):
#         for j in range(len(table.columns)):
#                 print(table.cell(i,j).text)# 实际只需要每个表格第二列的值,因此修改一下
for table in doc.tables:row_list = []for i in range(len(table.rows)):row_list.append(table.cell(i,1).text)sheet.append(row_list)wb.save(r'D:\postgresql\PG13参数参考手册.xlsx')

参考

《PostgreSQL13商用文档之PG参数参考手册》

python提取word内容并写入excle_lau_jw的博客-CSDN博客_python读取word数据写入excel

别再问我Python怎么操作Word了!

多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!

如何利用Python批量将Word中的信息提取到Excel?_俊红的数据分析之路的博客-CSDN博客

Python3-word文档操作(五):利用python修改word文档中的表格数据_liranke的博客-CSDN博客_python处理word表格

Python将word表格存入excel —— 格式化pg参数手册相关推荐

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

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

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

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

  3. 使用Python将Word表格转Excel

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

  4. python统计word表格写入excel

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

  5. python word表格嵌套_【Python】Word表格汇总Excel

    [Visual Basic] 纯文本查看 复制代码Sub scbgtc() [/quote] 您好,还有个问题咨询下您:我用VB写了个实现之前表格的功能,代码如下,总是报错,您可有时间帮我看下,很感谢 ...

  6. python word 表格 框线_Python 自动化办公 | 将 Word 表格转为 Excel

    原标题:Python 自动化办公 | 将 Word 表格转为 Excel 大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改) 一共 ...

  7. python编辑word与读Excel的经验

    python编辑word与读Excel的经验 前段时间为了解决工作上的一些问题,有听说python有相关的库编辑Office文档很方便,就被骗进坑了.为了避免后来者再遇到相同的坑,所以把这些经验写下来 ...

  8. html表格固定行高_Excel表格向Word复制不变形,Word表格向Excel复制不变形,一次全掌握。...

    Excel情报局 生产搬运分享Excel基础技能 OFFICE知识新青年 用1%的Excel基础搞定99%的日常工作 做一个有文艺范的Excel公众号 Excel是门手艺 玩转需要勇气 听歌阅读 Ex ...

  9. python 实现截图自动存入Excel表

    python 实现截图自动存入Excel表 首先我先在桌面新建一个test.xls文件 import keyboard #监听按键库 from PIL import ImageGrab #图像处理库 ...

最新文章

  1. linux配置静态IP后ping外网不通的解决方案
  2. HyperLink 鼠标经过时候显示全部文字
  3. 中国和英国的旅行的对比
  4. linux服务器安装caffe(无root权限)
  5. 获取路径传过来的地址 截取参数
  6. 怎么用javascript进行拖拽[zt]
  7. 链接地址中的target=”_blank”属性安全性处理
  8. 【非原创】codeforces 1070C Cloud Computing 【线段树树状数组】
  9. 【LeetCode】刷题工具
  10. 办公软件不能打印能打印测试页,在office办公软件word中不能打印是什么原因
  11. 华为鸿蒙参与者,一起来搞机 篇二十四:不止有鸿蒙,参加华为开发者大会是一种怎样的体验...
  12. 基于多传感器的AUV控制系统
  13. 我在用的翻译软件,微软翻译,网易有道词典
  14. scrapy爬虫 出现10054错误 远程主机强迫关闭了一个现有的连接
  15. 如何用好 Google 等搜索引擎?
  16. “人工智能基础”课程笔记
  17. 简述C#中IO的应用
  18. 中毒了 电脑都是.php,Linux_电脑中毒Linux find命令快速查找中毒文件教程,  电脑中毒是不可避免的,L - phpStudy...
  19. 非法关机 mysql_一次非法关机导致mysql数据表损坏的实例解决 -电脑资料
  20. 如何实现开机自动挂载

热门文章

  1. Formal Verification (一) 形式验证的分类、发展、适用场景
  2. kettle配置资源库
  3. Python 绘制圆锥体(3D图)
  4. 我们的竞争对手在看向哪里---对勺海公众号的挖掘与细分
  5. 12个黑科技网站,每个都是十分良心了 zt – 步行街主干道 – 虎扑社区
  6. Max OS 打开 JD-GUI 报错
  7. 使用按键精灵实现界面点击自动化
  8. 红米手机4A超简单刷入开发版获取ROOT超级权限的教程
  9. 聊下git merge --squash
  10. 26丨案例:手把手带你理解TPS趋势分析*