借助python工具从word文件中抽取表的定义,最后组装建表语句-非常好

--如有转载请以超链接的方式注明原文章出处,谢谢大家。请尊重每一位乐于分享的原创者

1.python脚本

#
# -*- coding:utf-8 -*-
import sys
from docx import Document

file_path = sys.argv[1]

document = Document(file_path)

tables_info = {}

for table in document.tables:
    rows = table.rows
    for index, row in enumerate(rows):
        if index == 0:
            table_name = row.cells[0].text
            tables_info[table_name] = {}
        elif index == 1:
            continue
        else:
            row_name = row.cells[1].text
            row_type = row.cells[2].text
            tables_info[table_name][row_name] = row_type

for t_name, info in tables_info.items():
    create_table_sql = "create table {t_name}(".format(t_name=t_name)
    for name, _type in info.items():
        if name and _type:
            create_table_sql += '{} {},'.format(name, _type)
    create_table_sql = create_table_sql[:-1] + ');'
    print create_table_sql

2.document文件样本

DJ_YH_FX

字段中文名

字段英文名

类型长度

主键

外键

非空

索引

说明

识别号

sbh

VARCHAR2(20)

旧号

oldh

VARCHAR2(40)

名称

mc

VARCHAR2(80)

代码

dm

VARCHAR2(11)

用户编码

yhbm

VARCHAR2(20)

3. 执行python操作

python parser_docx.py document.docx > create_table.sql

借助python工具从word文件中抽取相关表的定义,最后组装建表语句-非常好的更多相关文章

  1. SQL Server 未保存.sql文件,还想查看、修改一些建表语句、存储过程等怎么办?

    SP_HELPTEXT 表名/视图名/存储过程名:

  2. 吴裕雄--天生自然python学习笔记:python文档操作批量替换 Word 文件中的文字

    我们经常会遇到在不同的 Word 文件中的需要做相同的文字替换,若是一个一个 文件操作,会花费大量时间 . 本节案例可以找出指定目录中的所有 Word 文件(包含 子目录),并对每一个文件进行指定的文 ...

  3. 吴裕雄--天生自然python学习笔记:python文档操作自动查找替换 Word 文件中的指定文字

    Win32com 组件提供了自动替换 Word 文件中指定文字 的功能 .在使用“查找” 功能替换文字之前,可先清除源文字及目标文字的格式,以免影响替换效果,语法为 : 替换 Word 文件特定文字的 ...

  4. 利用ROS工具从bag文件中提取图片

    bag文件是ROS常用的数据存储格式,因此要从bag文件中提取数据就需要了解一点ROS的背景知识. 1. 什么是ROS及其优势 ROS全称Robot Operating System,是BSD-lic ...

  5. 从pdf 文件中抽取特定的页面

    前段时间买了一个kindle 电子书阅读器.我想用它来读的pdf文档.当然最主要是用来读python标准库&mysql的官方文档. 问题就来了.这两个都是大头书.之前用mac看还好.用kind ...

  6. Intellij Idea 工具在java文件中如何避免 import .*包

    Intellij Idea工具在java文件中怎么避免import java.utils.*这样的导入方式,不推崇导入*这样的做法!Editor->Code Style->Java-> ...

  7. 从一个word文件中读取所有的表格和标题(1)

    首先讲需求: 从word文件中读表格里的数据,然后插入数据库中.word文件中的表格是带有标题的,把标题读出来,进行匹配数据库. 需求分析: word2007底层是以xml文件存储的,所以分析xml的 ...

  8. 通过wget工具下载指定文件中的URLs对应的资源并保存到指定的本地目录中去并进行文件完整性与可靠性校验

    创建URLs文件在终端输入cd target_directory回车,便把当前文件夹切换到了目标文件夹target_directory,此后创建的文件都会丢它里面在终端输入cat > URLs回 ...

  9. Python导出MySQL数据库中表的建表语句到文件

    为了做数据对象的版本控制,需要将MySQL数据库中的表结构导出成文件进行版本化管理,试写了一下,可以完整导出数据库中的表结构信息 # -*- coding: utf-8 -*- import os i ...

随机推荐

  1. C++笔记(2018/2/6)

    引用 & 某个变量的引用,等价于这个变量,相当于该变量的一个别名. 定义引用时一定要将其初始化成引用某个变量. 初始化后,它就一直引用该变量,不会再引用别的变量了. 通过引用所做的读写操作,会 ...

  2. 【.Net】在windows server 2016 和Windows10这些server上安装.net fw3.5

    一般就是打开server manager. 一直next到add feature 讲net3.5勾选 发现需要指定一个路径是什么 source\sxs之类的 下载microsoft-windows-n ...

  3. Leetcode122-Best Time to Buy and Sell Stock II-Easy

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  4. HDU 5445 Food Problem(多重背包+二进制优化)

    http://acm.hdu.edu.cn/showproblem.php?pid=5445 题意:现在你要为运动会提供食物,总共需要提供P能量的食物,现在有n种食物,每种食物能提供 t 能量,体积为 ...

  5. 让你的 Python 代码优雅又地道

    示例代码和引用的语录都来自Raymond的演讲.这是我按我的理解整理出来的,希望你们理解起来跟我一样顺畅! 遍历一个范围内的数字 for i in [0, 1, 2, 3, 4, 5]: print  ...

  6. 因样式冲突引起的div消失问题

    工作需要,搭建一个网站的模型,简单分成三个部分,标题栏,导航栏,主界面,效果如图: 但是点击界面的任意地方,中间的div块消失了,如图所示: 调试,发现在点击界面其他地方的时候display属性有变化 ...

  7. selenium打开chrome时,出现 "您使用的是不受支持的命令行标记:--ignore-certificate-errors""

    from selenium import webdriveroptions = webdriver.ChromeOptions()options.add_experimental_option(&qu ...

  8. maven 引入外部jar包的几种方式

    方式1:dependency 本地jar包 <dependency> <groupId>com.hope.cloud</groupId> <!--自定义--& ...

  9. Ado.net之存储过程的使用【三】

    重点是红色标记区域的代码,设置本次执行的是存储过程,如果不设置,默认操作的是sql语句 private void LoadData() { string constr = @"databas ...

  10. The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

    关于出现这个·问题的原因貌似也是多种多样的? 在stack overflow上的帖子如下:https://stackoverflow.com/questions/43186315/tomcat-404 ...