Python读取EXCEL表结构生成DDL

2021-03-18  本文已影响0人  扎西的德勒

一、说明

近期工作中需要对Excel维护的数据库表表结构进行Oracle的DDL整理,故编写如下脚本。
该脚本识别固定Excel文件,读取每个sheet页的数据库表结构信息后拼接成可执行的DDL语句。
注意:控制台输出的DDL语句,需要对数据类型和最后一个字段的逗号做统一替换处理。

二、逻辑

1、EXCEL格式

image.png

2、Python脚本

import xlrd

data_file = xlrd.open_workbook('tablesDDL.xlsx')

# 查看工作表
data_file.sheet_names()
# print("sheets:" + str(data_file.sheet_names()))

#遍历所有工作表,获取对应的下标位置
for num in range(len(data_file.sheet_names())):
    #按照下标读取对应工作表
    sheet = data_file.sheet_by_index(num)
    # 拼接建表语句
    print("CREATE TABLE "+sheet.cell_value(1,0)+"."+sheet.cell_value(1,1)+"(")
    count = 0
    for i in range(sheet.nrows):
        if count >= 1:
            # row = sheet.row_values(i)
            column_name = sheet.cell_value(i, 4)
            data_type = sheet.cell_value(i,6)
            data_type_length = sheet.cell_value(i,7)
            print("\t"+column_name+" "+data_type+"("+str(data_type_length)[0:-2]+"),")
        count += 1

    print(");")
    count2 = 0
    #拼接字段注释和表注释
    for j in range(sheet.nrows):
        if count2 >= 1:
            # row = sheet.row_values(i)
            user_name = sheet.cell_value(1, 0)
            table_name = sheet.cell_value(1, 1)
            column_name = sheet.cell_value(j, 4)
            column_comment = sheet.cell_value(j, 5)
            print("COMMENT ON COLUMN "+user_name+"."+table_name+"."+column_name+" IS "+"'"+column_comment+"';")
        count2 += 1
    table_comment = sheet.cell_value(1, 2)
    print("COMMENT ON TABLE "+user_name+"."+table_name+" IS "+"'"+table_comment+"';")
    num += 1

即可在控制台输出对应的DDL语句。

上一篇下一篇

猜你喜欢

热点阅读