由于单位设计数据库表·,都用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. (二)RabbitMQ使用笔记

    1.RabbitMQ简介 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现. 官网:http://www.rabbitmq.c ...

  2. StringUtils常用方法介绍

    要使用StringUtils类,首先需要导入:import org.apache.commons.lang.StringUtils;这个包 在maven项目中需要添加下面这个依赖: <depen ...

  3. C# 在Winform设计一个耗时较久的任务在后台执行时的状态提示窗口

    很多时候,我们需要在窗体中执行一些耗时比较久的任务.比如:循环处理某些文件,发送某些消息等... 单纯的依靠状态栏,用户体验不佳,按下功能按钮后得不到有效的提醒,小白用户绝对会电话给你说“我点了以后就 ...

  4. spark执行例子eclipse maven打包jar

    首先在eclipse Java EE中新建一个Maven project具体选项如下 点击Finish创建成功,接下来把默认的jdk1.5改成jdk1.8 然后编辑pom.xml加入spark-cor ...

  5. selenium+PhantomJS简单爬虫

    #!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017年10月19日 @author: zzy ''' import tim ...

  6. 【问题记录】element is not attached to the page document

    遇到ui脚本报错:element is not attached to the page document 解决办法,再次定位即可

  7. [POI2007]ZAP-Queries 数学

    题目描述 Byteasar the Cryptographer works on breaking the code of BSA (Byteotian Security Agency). He ha ...

  8. PyQt 5+qtDesigner

    https://blog.csdn.net/view994/article/details/84402069 https://blog.csdn.net/yizhou2010/article/deta ...

  9. java 常用模块代码

    1.文件的读写操作 (1)进行读操作 import java.io.BufferedReader; import java.io.FileNotFoundException; import java. ...

  10. spring boot 自定义静态资源 位置..

    upload-path: E:/upload # 上传文件夹. upload-key: 72b3158c-a0f3-11e8-98d0-529269fb1459 # 定义上传的 key . sprin ...