借助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. Docker run 出现问题如何调试?

    docker run -ti 3f5dd697cc83 /bin/bash #进入image的目录 ls -l #列出所有目录 dotnet run WestWin.Ads.Crawler.WebAp ...

  2. Lintcode455-StudentID-Easy

    Implement a class Class with the following attributes and methods: A public attribute students which ...

  3. .Net ASP.NET 打开指定文件夹

    比如要打开指定的文件夹,而不是弹出对话框 System.Diagnostics.Process.Start(@"D:\"); 这样就打开了D盘,和正常打开D盘是一样的.

  4. Select2 添加默认值

    折腾很久才解决问题 $.ajax({ url: '@Url.Action("GetSystemSzzdItem", "CangpinGushi")', type ...

  5. 免费api

    聚合数据提供30大类,100种以上基础数据API服务,国内最大的基础数据API服务,下面就罗列一些免费的各类API接口. 聚合的免费API接口数据: 手机号码归属地API接口:https://www. ...

  6. 【Selenium2】【Shell】

    E:\test_object>Python all_test.py >> report/log.txt 2>&1

  7. ssh连接服务器

    1.命令行操作 第一步输入  :ssh 用户名@服务器外网ip 第二步:输入密码,回车 看到welcome提示信息即为登陆成功 输入:exit 退出 2.客户端操作 windows下载ssh软件,安装 ...

  8. maven 打包不同环境

    支持不同环境打包 1 pom添加如下配置: 1)添加指定打包id 区分各个环境 <profiles> <profile> <id>dev</id> &l ...

  9. django自定义Admin actions

    通常情况下,admin的工作模式是“选中目标,然后修改目标”,但在同时修改大量目标的时候,这种模式就变得重复.繁琐. 为此,admin提供了自定义功能函数actions的手段,可以批量对数据进行修改. ...

  10. java正则常用记录

    1.   java中 字符串的某个字母是否有某个指定字符N  : for(int i=0;i<temp.length();i++){ if( temp.get(i).substring(0,1) ...