由于单位设计数据库表·,都用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. .net IAsyncResult 异步操作

    //定义一个委托 public delegate int DoSomething(int count); //BeginInvoke 的回调函数 private static void Execute ...

  2. MVC5中 在更新 Microsoft.Aspnet.Identity 后编译器错误

    环境:vs2013预览版chs,我试着创建vb.net web应用,从对话框中选择MVC和WebAPI.编译ok了.通过NuGet管理器更新了Microsoft.Aspnet.Identity.Cor ...

  3. 【SQL】- 基础知识梳理(七) - 索引

    索引的概念 在关系型数据库中,索引是对数据库表中一列或多列的值进行排序的一种结构. SQL SERVER中有索引的类型:按存储结构区分:“聚集索引(又称聚类索引,簇集索引)”,“分聚集索引(非聚类索引 ...

  4. angular 输出属性

    import { Component, OnInit, EventEmitter, Output } from '@angular/core'; @Component({ selector: 'app ...

  5. 关于MultiDataTrigger和MultiTrigger的一些注意事项

    他俩有着相同的语法. 都是在conditions中编写触发条件. 因为都是同一个触发类. 在conditions中有Property和Binding这两个属性.那么这两个可以同时使用吗?当然是不可以的 ...

  6. [转]解读Unity中的CG编写Shader系列1——初识CG

    CG=C for Graphics  用于计算机图形编程的C语言超集 前提知识点: 1.CG代码必须用 CGPROGRAM ... ENDCG括起来 2.顶点着色器与片段着色器的主函数名称可随意,但需 ...

  7. hbase安装 配置报错 zookeeper启动报错

    zookeeper安装问题,使用独立安装的zookeeper export HBASE_MANAGES_ZK=false   #如果使用独立安装的zookeeper这个地方就是false 创建zook ...

  8. 洛谷P3711 仓鼠的数学题(伯努利数+多项式求逆)

    题面 传送门 题解 如果您不知道伯努利数是什么可以去看看这篇文章 首先我们把自然数幂和化成伯努利数的形式 \[\sum_{i=1}^{n-1}i^k={1\over k+1}\sum_{i=0}^k{ ...

  9. 洛谷P3355 骑士共存问题(最小割)

    传送门 de了两个小时的bug愣是没发现错在哪里……没办法只好重打了一遍竟然1A……我有点想从这里跳下去了…… 和方格取数问题差不多,把格子按行数和列数之和的奇偶性分为黑的和白的,可以发现某种颜色一定 ...

  10. 如何理解java采用Unicode编码

    http://blog.csdn.net/gjb724332682/article/details/43229563 Java中字符仅以一种形式存在,那就是Unicode.由于java采用unicod ...