python工具-读取excel拼接成SQL语句

一、背景

工作上有通过excel文档,写一些建表语句之类的开发任务,纯手工操作复制粘贴,也顶不住文档多啊。所以写一些py小工具,给自己减压。

二、代码

import xlrd

'''
环境准备:  pip install xlrd==1.2.0 -i  https://pypi.tuna.tsinghua.edu.cn/simple

读取excel中列英文名、中文名、字段类型,拼接成sql语句。
如:
    .....
    creat_time string COMMENT '创建时间' ,
    update_time string COMMENT '更新时间' ,
    ......
'''
class ExcelData():
    # 初始化方法
    def __init__(self, data_path, sheetname):
        #定义一个属性接收文件路径
        self.data_path = data_path
        # 定义一个属性接收工作表名称
        self.sheetname = sheetname
        # 使用xlrd模块打开excel表读取数据
        self.data = xlrd.open_workbook(self.data_path)
        # 根据工作表的名称获取工作表中的内容(方式①)
        self.table = self.data.sheet_by_name(self.sheetname)

    '''
    rows_no_start: 数据起始行
    rows_no_end: 数据结束行
    col:   英文名称在第几列
    col_cn: 中文名称在第几列
    col_type: 字段类型在第几列
    '''
    def excelToSQL(self,rows_no_start,rows_no_end,col,col_cn,col_type):
        # 定义一个空列表
        datas = []
        j = rows_no_start
        while j < rows_no_end:
            #print("j :" + str(j))
            column = self.table.cell_value(j, col)
            column_cn = self.table.cell_value(j, col_cn)
            column_type = self.table.cell_value(j, col_type)
            content = "{col_txt} {col_type_txt} COMMENT '{col_cn_txt}' ,".format(col_txt=column, col_type_txt=column_type, col_cn_txt=column_cn)
            #print(content)
            datas.append(content)
            j = j+1
        return datas

    '''
        数组写入txt文件
    '''
    def writeToTxt(self,file_path,data_array):
        with open(file_path, "a") as file:
            for i in data_array:
                file.write(i + "\n")

if __name__ == "__main__":
    data_path = "D:/订单表.xlsx"
    sheetname = "ORDER_INFO"
    get_data = ExcelData(data_path, sheetname)
    datas = get_data.excelToSQL(8, 83, 17, 18, 19)
    #print(datas)
    txt_name = "E:/test.txt"
    get_data.writeToTxt(txt_name, datas)

三、后续

针对我自己这里的excel文档,测试可行。处理好的文档全部在txt文件中,只需要粘贴出来就行,一分钟搞定一张建表SQL。

上面的代码,根据excel文档中数据所在列不同,自行调整参数。

datas = get_data.excelToSQL(8, 83, 17, 18, 19)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值