由于单位设计数据库表·,都用sql.不知道什么原因不用 powerdesign或者ermaster工具,建表很痛苦  作为程序猿当然要想办法解决,用Python写一个程序解决

需要用到 xlrd linux下 sudo pip install xlrd

主要是适用于db2数据库

excel 表结构 其中 number是不正确的字段类型 不知道同事为啥这么设置。这里程序里有纠错,这个程序就是将sql语句拼好。

__author__ = 'zhanglei'
# coding:utf-8 import xlrd
import re data = xlrd.open_workbook("1.xlsx")
table = data.sheets()[0] temp = table.row_values(0)[0] tableName = re.findall("[A-Z].*\w+", temp)[0] nrows = table.nrows
#print nrows
sql = "create table " + tableName + "( \n"
for rownum in range(2, nrows):
row = table.row_values(rownum) if row and rownum != (nrows - 1): if row[1] == "ID":
temp = float(row[3])
sql += row[1] + " " + row[2] + "(" + str(int(temp)) + ") " + "PRIMARY KEY,\n"
else:
sql += row[1] + " "
if re.search("DECI.*", row[2]):
sql += " " + row[2]
elif row[2] == "NUMBER" and row[3] == 8:
sql += " int "
elif row[2] == "NUMBER" and row[3] == 1:
sql += " smallint "
elif row[2] == "NUMBER" and row[3] > 10:
sql += "bigint"
elif row[2] == "DATETIME":
sql += " timestamp "
elif row[2] == "DATE":
sql += " date "
else:
temp = float(row[3])
sql += " " + row[2] + "(" + str(int(temp)) + ") " if row[4] == "Y" and row[5] == "Y":
sql += " NOT NULL UNIQUE,\n" elif row[4] == "Y" and row[5] != "Y":
sql += " NOT NULL,\n"
elif row[4] != "Y" and row[5] != "Y":
sql += ",\n"
else:
sql += row[1] + " " if re.search("DECI.*", row[2]):
sql += " " + row[2]
else:
temp = float(row[3])
sql += " " + row[2] + "(" + str(int(temp)) + ") " if row[4] == "Y" and row[5] == "Y":
sql += " NOT NULL UNIQUE,\n" elif row[4] == "Y" and row[5] != "Y":
sql += " NOT NULL,\n"
elif row[4] != "Y" and row[5] != "Y":
sql += " \n)" print sql
 
create table BH_Business(
ID VARCHAR(64) PRIMARY KEY,
BUSI_SERIAL_NO VARCHAR(50) NOT NULL UNIQUE,
BUSI_CODE VARCHAR(10) NOT NULL,
BRANCH_CODE VARCHAR(10) NOT NULL,
TELLER_CODE VARCHAR(10) NOT NULL,
AMT DECIMAL(14,2) NOT NULL,
CURRENCY VARCHAR(6) NOT NULL,
CUSTOM_LVL NUMBER(1) NOT NULL,
STATE VARCHAR(2) NOT NULL,
REMARKS VARCHAR(200) ,
WEIGHT_VALUE NUMBER(8) NOT NULL,
TMP_WEIGHT_VALUE NUMBER(8) NOT NULL,
URGENT_FLAG NUMBER(1) NOT NULL,
ACCP_TIME timestamp NOT NULL,
CLOSE_TIME timestamp NOT NULL,
WORK_FLOW_ID VARCHAR(200) ,
TMP_UNDO_FLAG NUMBER(1) NOT NULL,
SYS_ID VARCHAR(6) NOT NULL,
MEDIUM VARCHAR(8) NOT NULL,
CRT_TELLER_ID VARCHAR(50) NOT NULL,
CRT_TIME timestamp NOT NULL,
CRT_IP VARCHAR(50) NOT NULL,
UPD_TELLER_ID VARCHAR(50) ,
UPD_TIME timestamp ,
UPD_IP VARCHAR(50)
)

python读取excel表格生成sql语句 第一版的更多相关文章

  1. Excel表格生成sql语句

    假如excel表格中有A.B.C三列数据,希望导入到数据库users表中,对应的字段分别是name,sex,age ,在你的excel表格中增加一列,利用excel的公式自动生成sql语句,方法如下: ...

  2. Excel数据生成Sql语句的方法

    选中想要生成的列,套用表格格式,选中表包含标题的选项确定,然后在最右边的一列第二行处,点击函数功能,选择CONCATENATE,在文本里输入想要的结构即可  代码如下 复制代码 ,=CONCATENA ...

  3. python读取Excel表格文件

    python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1.安装Excel读取数据的库-----xlrd 直接pip install xlrd安 ...

  4. Java 自定义注解及注解读取解析--模拟框架生成SQL语句

    假设们使用一张简单的表,结构如下: 定义注解: 表注解: package com.xzlf.annotation; import java.lang.annotation.ElementType; i ...

  5. Python读取Excel表格

    前言:需要进行自动化办公或者自动化测试的朋友,可以了解下此文,掌握Python读取Excel表格的方法. 一.准备工作: 1.安装Python3.7.0(官网下载安装包) 2.安装Pycharm(官网 ...

  6. [转] Windows下使用Python读取Excel表格数据

    http://www.python-excel.org/这个网站罗列了很多关于在Python下操作Excel文件的信息,这里选择了其介绍的第一个模块xlrd . xlrd 0.9.2版本跨平台同时支持 ...

  7. 读取excel数据生成sql脚本

    package com.interact.util; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.b ...

  8. 使用Excel自动生成sql语句

    在近一段日子里,进入了新的项目组,由于项目需要,经常要将一些Excel表中的数据导入数据库中,以前并没有过多的接触过数据导入与数据处理,对于我来说比较痛苦,今天下午花了几个小时处理数据,但是同事给我提 ...

  9. python读取excel表格中的数据

    使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...

随机推荐

  1. ComicEnhancerPro 系列教程二十:用“文件比较”看有损、无损

    作者:马健邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程二十:用“文件比较” ...

  2. Stopwatch运行时间 Parallel并行任务

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...

  3. 「POJ 1741」Tree

    题面: Tree Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define ...

  4. Glib之GObject宏介绍

    G_DEFINE_TYPE定义一个静态类型 /** * G_DEFINE_TYPE(`G_DEFINE_TYPE_WITH_CODE`比`G_DEFINE_TYPE`就是多了一个自定义代码参数_C_) ...

  5. 微信H5或PC支付常见问题汇总

    1.H5端调起支付,直接提示[支付失败],打印具体的信息,“<当前URL不存在>” 原因: ①.[支付授权目录不对]---查看微信商户平台的支付授权目录的地址,如果MVC结构的,则只需填写 ...

  6. 使用jmeter做简单的场景设计

    使用jmeter做简单的场景设计 Jmeter: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试.我之所以选择它,最重要的一点就是----开源 个人 ...

  7. 洛谷P2775 机器人路径规划问题

    传送门 题解 至今没看懂这深搜怎么写的…… //minamoto #include<iostream> #include<cstdio> #include<cstring ...

  8. 基于openstack搭建百万级并发负载均衡器的解决方案

    最近,喜欢研究一些国外技术大咖们的文章,而这篇文章是基于openstack负载均衡器的解决方案,做的一些总结~希望能够给小伙伴带来一些灵感或者帮助. openstack现有的负载均衡解决方案,无论是l ...

  9. hadoop集群配置方法---mapreduce应用:xml解析+wordcount详解---yarn配置项解析

    注:以下链接均为近期hadoop集群搭建及mapreduce应用开发查找到的资料.使用hadoop2.6.0,其中hadoop集群配置过程下面的文章都有部分参考. hadoop集群配置方法: ---- ...

  10. github上传Python被识别为css--解决

    在项目根目录新建文件.gitattributes 添加如下: *.css linguist-language=python把.css结尾的文件识别为python语言