栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

一、 背景

      收到一份《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:postgresqlPG13参数参考手册.docx')

for paragraph in doc.paragraphs:
    print(paragraph.text)

  • 给每个表格加一行,存入上面的参数类别(格式化后),保存word文档。注意程序修改word文档的时候本地不要打开这个文档,否则会报错。
from docx import Document

# 格式化word文档,word表格新增一行,保存参数分类

doc = Document(r'D:postgresqlPG13参数参考手册.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+1

doc.save(r'D:postgresqlPG13参数参考手册.docx')

  •  获取word表格第二列的每一行,存入一个list
  • 将每个list append到excel,保存即可。也注意程序修改excel文档的时候本地不要打开这个文档,否则会报错。
from docx import Document
from openpyxl import Workbook

# 实例化word文档
doc = Document(r'D:postgresqlPG13参数参考手册.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:postgresqlPG13参数参考手册.xlsx')

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

3. excel格式化

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

三、 实现代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time  : 2022-07-08 23:57
# @Author: Hehuyi_In
# @File  : word_to_excel.py

from docx import Document
from openpyxl import Workbook


# 格式化word文档,word表格新增一行,保存参数分类

# 实例化word文档
doc = Document(r'D:postgresqlPG13参数参考手册.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+1

doc.save(r'D:postgresqlPG13参数参考手册.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:postgresqlPG13参数参考手册.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表格

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号