今天遇到同事提出的一个需求,在excel里有表的结构,但导入到Mysql时出现问题,字段名可以正常导入,但字段类型和长度还得手动修改,问一下有没有什么简便方法。

我使用的是Office2019的Excel。下面步入正题:

1、图1:空白,准备显示生成的SQL语句。图2:用户表。 图3:年级表。

2、在“开发工具”菜单里打开Visual Basic。如果没有“开发工具”这个选项,在文件 -->选项里设置一下,把开发工具勾上即可。如下图:

继续刚才的内容,打开Visual Basic之后,双击sheet1,打开窗口,并写入代码,如下图:

接着,点击运行按钮即可。如下图:

最终效果,如下图:

以上SQL语句没有经过测试,只是生成这么一个效果。大家可以参考一下,如果有问题,请自行调整。

以下是代码片断:(本想放在下载里的,但想想,还是算了,大家都没有下载积分了……)

Sub generateSql()'sql语句变量和表名变量Dim sql As StringDim tableName As String'第一个sheet用于保存生成的SQL语句,所以从第二个开始For si = 2 To Workbooks(1).Sheets.CountSet mysheet = Workbooks(1).Sheets(si) 'sheet对象tableName = mysheet.Range("A2").Value '表名-英文(第一列第二行)'如果表已经存在,则删除sql = sql & "DROP TABLE IF EXISTS '" & tableName & "'; " & vbCrLf'创建表sql = sql & "CREATE TABLE '" & tableName & "' ( " & vbCrLfFor i = 2 To mysheet.UsedRange.Rows.Count '遍历列Dim nameStr As String '字段名Dim typeStr As String '类型及长度Dim nullStr As String '是否为空Dim comment As String '注释'以下四行是为上面的变量赋值nameStr = mysheet.Range("B" & i).ValuetypeStr = mysheet.Range("C" & i).ValuenullStr = mysheet.Range("D" & i).Valuecomment = mysheet.Range("E" & i).Valuesql = sql & "'" & nameStr & "' " & typeStr'判断是否为空If nullStr = "Y" Thensql = sql & " NOT NULL "Elsesql = sql & " NULL "End Ifsql = sql & "COMMENT '" & comment & "'"If i <= mysheet.UsedRange.Rows.Count Thensql = sql & ","End Ifsql = sql & vbCrLfNext i'默认id为主键sql = sql & "PRIMARY KEY ('id')"'建表完成sql = sql & vbCrLfsql = sql & ");" & vbCrLfsql = sql & "-----创建表 " & tableName & " 成功" & vbCrLf & vbCrLfNext siWorkbooks(1).Sheets(1).Range("A" & 1).Value = sql
End Sub

好啦,就这样吧!

虽是原创,但也可转载~

我是来自大连华信-未来出行事业部-交通业务研发中心的卢泽

EXCEL生成MySql建表语句相关推荐

  1. python读取excel生成mysql建表语句_python读取excel文件并自动在mysql中建表导数据

    """ 根据excel在mysql中建表(表名为文件名,字段为csv中的header,默认所有字段为varchar,如需更改,在数据库中更改即可),并插入数据 " ...

  2. mysql json建表_json数据自动生成MySQL建表语句

    #_*_coding:utf-8_*_ #author: cike #date: 18-9-13 import pymysql.cursors connection = pymysql.connect ...

  3. 基于表的数据字典构造MySQL建表语句

    表的数据字典格式如下: 如果手动写MySQL建表语句,确认麻烦,还不能保证书写一定正确. 写了个Perl脚本,可快速构造MySQL脚本语句. 脚本如下: #!/usr/bin/perl use str ...

  4. 自动获取mysql建表语句_脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明...

    常规建表语句: CREATE TABLE `test_table` ( `id` int(11) NOT NULL, `name` char(64) NOT NULL, `password` char ...

  5. Shell脚本导出导入MySQL建表语句

    Shell脚本导出导入MySQL建表语句 一.导出sql语句 1.需求: 2.shell脚本如下: 二.导入sql语句 1.需求 2.shell实现1 3.shell实现2 一.导出sql语句 1.需 ...

  6. Excel自动生成sql建表语句

    ETL开发中重新整理很多表结构,写建表语句又是一件头疼的事情,干脆借鉴网友的代码,自己写了一个自动生成建表sql的模板. 模板下载:http://download.csdn.net/detail/en ...

  7. mysql 建表语句 stored as_Druid 解析Hive建表语句解析报错

    Druid 版本: com.alibaba druid-spring-boot-starter 1.2.3 Hive 建表SQL create table ads_data.sale_detail_o ...

  8. excel转换mysql建表_把 excel 和 mysq l数据库相互转换

    不用代码轻松搞定,参考http://jingyan.baidu.com/article/fc07f9891cb56412ffe5199a.html 1.excel 转 mysql a.首先确认你的数据 ...

  9. mysql 博客建表语句,mysql建表语句

    mysql建表语句 (2012-08-07 13:25:20) 标签: 杂谈 create table messages( id int unsigned primary key auto_incre ...

  10. navicat mysql 建表语句_navicat 8 for mysql怎么用语句建表

    Navicat是一套快速,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开发人员及中小企业的需要.Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创 ...

最新文章

  1. 火狐自定义字体失败 downloadable font: no supported format found
  2. 交换器无法根据自身类型和路由键找到符合条件队列时,有哪些处理?
  3. 一步一步学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)
  4. memcached SASL验证状态安全绕过漏洞
  5. 转换BIM IFC数据为CityGML
  6. HTML 表格滚动锁定表头,实现固定行列
  7. Failed to recurse into submodule path 'third_party/onnx'
  8. 只做正确的事情,并持续输出价值
  9. 福昕阅读器 - PDF 文档基本操作
  10. 10段代码教你玩转C++
  11. HDU - 4489 The King’s Ups and Downs (排列组合+dp)
  12. R语言使用马尔可夫链Markov Chain, MC来模拟抵押违约
  13. anaconda环境配置与windows环境下pip使用方法
  14. 设计模式----创建型设计模式(单例模式、工厂方法模式、构建者模式)
  15. 请问网页的在线聊天怎么实现
  16. android sku 库存管理,建议收藏!为什么合理的SKU设置对有效库存管理与销售至关重要?...
  17. 安装 ubuntu 18.04登录界面卡死解决
  18. 我改回iPhone的13个理由
  19. 贵州高二会考计算机考试题,贵州省普通高中会考数学试题.docx
  20. 短视频剪辑自学需要掌握的小技巧,初学者可收藏

热门文章

  1. 植物大战僵尸:游戏中的“修改器【Python】”一定是作弊?善用增加趣味性!
  2. MATLAB代码:电-气-热综合能源系统耦合优化调度 关键词:综合能源系统 优化调度 电气热耦合 主要内容:代码主要做的是一个考虑电网、热网以及气网耦合调度的综合能源系统优化调度模型
  3. 【CV】细粒度图像分割 (FGIS)
  4. UDID获取的方法(Iphone,Ipad,Mac,Window都可以)
  5. AndroidStudio的强大搜索功能介绍!全局搜索、搜索文件、搜索类、搜索文本、搜索一切
  6. 73个GitHub高级搜索技巧
  7. 室内定位导航-室内地图导航-高精度地图应用场景
  8. python文件或目录损坏且无法读取,data\sogoupy\verify.ini已损坏且无法读取,啥意思?谢谢?...
  9. Github和Git是啥意思?下面来简单了解下。
  10. Unity双击桌面快捷方式打不开怎么办?