一、修改数据类型(中英)

需求:

代码:

#-*-coding:gbk*-
import os
import docx
#from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.enum.text import WD_ALIGN_PARAGRAPH filepath = r'f:/1/'
def main():
docxlist = os.listdir(filepath)
for mydocx in docxlist:
newdocx = docx.Document(filepath + str(mydocx))
#newdocx.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
table = newdocx.tables
for oTable in table:
rows_num = len(oTable.rows)
columns_num = len(oTable.columns)
if columns_num >= 5:
for j in range(rows_num):
#English -> Chinese
ostring = oTable.cell(j, 3).text
oTable.cell(j, 4).paragraphs[0].paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
if ostring == 'TIMESTAMP':
oTable.cell(j, 3).text = ostring.replace("TIMESTAMP", "时间戳")
oTable.cell(j, 4).text = ""
elif ostring == 'VARCHAR2':
oTable.cell(j, 3).text = ostring.replace("VARCHAR2", "字符串")
if ostring == 'DATE':
oTable.cell(j, 3).text = ostring.replace("DATE", "日期")
oTable.cell(j, 4).text = ""
elif ostring == 'NUMBER':
oTable.cell(j, 3).text = ostring.replace("NUMBER", "整数")
elif ostring == 'FLOAT':
oTable.cell(j, 3).text = ostring.replace("FLOAT", "小数")
#oTable.alignment = WD_TABLE_ALIGNMENT.CENTER
newdocx.save('f:/2/'+ str(mydocx))
if __name__ == '__main__':
main()

二、数据类型为日期时,清空位数内容

需求:

代码:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2019/2/20 14:12
# @File : date_del.py from docx import Document # 导入库
"""
word表格中
"""
path = "C:\\Users\\1\\Desktop\\福建省质监局标准信息资源目录.docx" # 文件路径
document = Document(path) # 读入文件
tables = document.tables # 获取文件中的表格集
one_cells = []
for table in tables:
rows_num = len(table.rows)
columns_num = len(table.columns)
if rows_num > 2 and columns_num == 4:
for i in range(1, rows_num): # 第二行开始
if table.cell(i, 3).text == '日期' or table.cell(i, 1).text == '日期':
one_cells.append(table.cell(0, 1).text)
for j in range(0, columns_num):
if table.cell(0, 1).text in one_cells:
if table.cell(i, j).text == '位数':
table.cell(i, j + 1).text = '' document.save("C:\\Users\\1\\Desktop\\1\\福建省质监局标准信息资源目录.docx")
# 校验修改内容
for i in one_cells:
print(i)

三、表格中添加单元格

需求:

参考:https://www.jianshu.com/p/9da61bf35cb7

代码:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2019/2/25 9:52
# @File : table_add_cell.py from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
from docx.shared import Pt """
word表格,添加一个单元格以及内容
"""
path = "C:\\Users\\1\\Desktop\\成都市质量技术监督局标准层信息资源目录.docx" # 文件路径
document = Document(path) # 读入文件
# 设置字体为: 宋体
document.styles['Normal'].font.name = u'宋体'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') tables = document.tables # 获取文件中的tables
# 被修改表格的列表
one_cells = [] def match_table():
"""
遍历文档匹配满足条件的表格
:return:
"""
for table in tables:
rows_num = len(table.rows)
columns_num = len(table.columns)
if rows_num > 2 and columns_num == 4:
one_text = table.cell(0, 1).text
if len(one_text) == 29:
one_cells.append(one_text) end_text = table.cell(rows_num - 1, columns_num - 1).text
if end_text:
# 添加一行
table.add_row()
set_font(table, 5, 0)
else:
set_font(table, rows_num - 1, columns_num - 2)
document.save("C:\\Users\\1\\Desktop\\1\\python_word_table_add_cell.docx") def set_font(table, a, b):
"""
设置表格字体样式
:param table: 表格
:param a: 行坐标
:param b: 列坐标
:return:
"""
run = table.cell(a, b).paragraphs[0].add_run(u'信息资源生产格式') # 内容为:信息资源生产格式
run.bold = True # 加粗
run.font.size = Pt(9) # 字体大小:小五-9
table.cell(a, b).paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER # 居中 run1 = table.cell(a, b + 1).paragraphs[0].add_run(u'ORACLE')
run1.font.size = Pt(9)
table.cell(a, b + 1).paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER def check_data():
# 校验修改内容
for i in one_cells:
print(i) if __name__ == '__main__':
match_table()
check_data()

python-docx编辑word表格的更多相关文章

  1. C#使用Docx操作word文档

    C#使用Docx编写word表格 最近接手了一个小Demo,要求使用Docx,将Xml文件中的数据转换为word文档,组织数据形成表格. 写了已经一周,网络上的知识太零碎,就想自己先统计整理出来,方便 ...

  2. Python批量创建word文档(2)- 加图片和表格

    Python创建word文档,任务要求:小杨在一家公司上班,每天都需要给不同的客户发送word文档,以告知客户每日黄金价格.要求在文档开始处给出banner条,价格日期等用表格表示.最后贴上自己的联系 ...

  3. python读取word表格内容(1)

    1.首页介绍下word表格内容,实例如下: 每两个表格后面是一个合并的单元格

  4. 【转】使用Docx.Core创建word表格

    原文地址:https://www.cnblogs.com/qs315/p/13533765.html 使用Docx.Core创建word表格 下载DocxCore Nuget包 当前版本 1.0.7 ...

  5. java web实现在线编辑word,并将word导出(二)

    前一篇文章介绍了后台将前台html转为word文档的一种方式,但却有一个问题是没法讲图片放置在生成的word报告中.我在网上找了很多方法,甚至将图片转换成base64编码的方式也不成功.效果如下: 由 ...

  6. 最全总结 | 聊聊 Python 办公自动化之 Word(中)

    1. 前言 上一篇文章,对 Word 写入数据的一些常见操作进行了总结 最全总结 | 聊聊 Python 办公自动化之 Word(上) 相比写入数据,读取数据同样很实用! 本篇文章,将谈谈如何全面读取 ...

  7. 最全总结 | 聊聊 Python 办公自动化之 Word(下)

    1. 前言 关于 Word 文档的读写,前面两篇文章分别进行了一次全面的总结 最全总结 | 聊聊 Python 办公自动化之 Word(上) 最全总结 | 聊聊 Python 办公自动化之 Word( ...

  8. Java 读取Word表格中的文本和图片

    本文通过Java程序来展示如何读取Word表格,包括读取表格中的文本和图片.下面是具体实现的步骤和方法. 1. 程序环境准备 代码编译工具:IntelliJ IDEA Jdk版本:1.8.0 测试文档 ...

  9. 在线编辑Word——插入图表

    在Word中可插入图表,配合使用表格能够更加全方位的展示数据的可信度并增加数据的可读性.本文将通过使用在线编辑器 Spire.Cloud Word 演示如何来插入图表,并设置相关格式化操作.具体步骤如 ...

随机推荐

  1. 免费开源 KiCad EDA 中文资料收集整理(2019-04-30)

    免费开源 KiCad EDA 中文资料收集整理 用 KiCad 也有一段时间了,为了方便自己查找,整理一下 KiCad 的中文资料,会不定期更新. 会收集KiCad 的新闻.元件封装库.应用技巧.开源 ...

  2. 持续集成--Jenkins--1

    持续集成之Jenkins安装部署   1.安装JDK Jenkins是Java编写的,所以需要先安装JDK,这里采用yum安装,如果对版本有需求,可以直接在Oracle官网下载JDK. [root@l ...

  3. 我对 前端 Js 开发方式 架构方向 的 一些看法

    有 网友 提到 : “复杂的页面,一个页面加载的模块多,各种异步请求,页面渲染,jquery链式编程操作dom数过于频繁.现在的前台越来越复杂,逻辑臃肿.” 哎, 所以 我说, 要改成用 同步调用 . ...

  4. gulp 压缩 js 和 css 代码

    我们在写出来的代码都是非常规范的,改换行的时候就换行,改tab 的时候就有tab,还有这样做是为了后期维护方便,但是这也导致了内存占用量的增大,当把把代码发到线上,如果网速慢一点,可能很久都加载不出来 ...

  5. gaea-editor 项目使用

    项目地址:https://github.com/ascoders/gaea-editor 打开编辑器界面:运行npm run docs 下载gaea-editor项目,进行调试,注意点: gaea-e ...

  6. 使用yum更新时不升级Linux内核的方法

    RedHat/CentOS/Fedora使用 yum update 更新时,默认会 升级内核 .但有些服务器硬件(特别是组装的机器)在升级内核后,新的内核可能会认不出某些硬件,要重新安装驱动,很麻烦. ...

  7. 一些常用的排序算法(C版)

    1. 直接插入排序(稳定排序) 简单的说就是将序列分为有序序列和无序序列.每一趟排序都是将无序序列的第一个元素插入有序序列中.R[1… i-1] <- R[i…n] , 每次取R[i]插入到R[ ...

  8. PHP 解压 ZIP 文件到指定文件夹

    本类实现参考 php manual 评论 [php] view plain copy /** * function: 解压zip 格式的文件 * author:friker * date:2015-1 ...

  9. SDI core端口说明

    SDI core端口说明 本文基于赛灵思的官方文档以及自己的理解: 1.生成SDI core 2.得到SDI core的顶层文件,并对每个端口做出解释 smpte_sdi smpte_sdi ( .r ...

  10. paramiko 实现ssh登录和sftp登录

    简单ssh登录 import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddP ...