ExcelToDatabase:批量导入Excel到MySQL/Oracle/SQLServer/Hive数据库
简介
ExcelToDatabase 是一个可以批量导入excel到数据库(mysql/oracle/sqlserver/hive)的自动化工具。自动化是其最大的特点,因为它可以根据excel自动导入数据到数据库而不需要做任何映射。批量是它另一个特点,因为可以做到自动化,所以你可以一次性导入成百上千张表而不是一个一个导。
工具特色:
自动:工具可以根据excel自动创建表并导入数据,或者根据excel与数据库的自动映射追加/更新数据
批量: 通常你只能用其他工具一个一个手动导入excel到数据库,但是现在,你可以一次性导入成百上千张表
简单: 只需要提供excel文件位置和目标数据库连接信息,工具就能开始工作直到excel全部被导入
快捷:最快的解决方案,没有之一
智能:你是否手动导入时经常遇到错误?不要担心!工具可以轻松避免或者自动纠正。
高级: 丰富的自定义选项,可以帮助你完成更多私人定制功能
定时: 可以搭配windows计划任务程序或者linux,实现定时调度,自动化不是梦
免费: 代码及程序均已开源
资源获取
开源代码:Github
可执行程序:下载可以在windows(ExcelToDatabase.exe)或者linux(ExcelToDatabase.tar.gz)上可以直接运行的可执行程序。
下载方式:
- QQ群文件下载:788719152
- SourceForge下载
使用方法:
启动程序
Windows: 点击ExcelToDatabase.exe
Linux: ./ExcelToDatabase
选择excel并填入数据库信息
常规界面选择excel文件目录,填入目标数据库连接信息,选择导入模式
点击开始
支持环境
- Windows/Linux
- MySQL/Oracle/SQLServer/Hive
- Excel(xls,xlsx,xlsm,csv)
菜单
语言:
- 中文
- 英文
数据库:
- MySQL
- Oracle
- SQLServer
- Hive
数据源:
目录: 选择目录作为数据源,目录下所有excel都将被导入
文件: 选择文件作为数据源,单个或者多个被选中的文件将被导入
选项介绍:
常规:
Excel:
选择目录或者文件作为数据源
MySQL/Oracle/SQL Server/Hive连接:
填入目标数据库的连接信息
模式:
覆盖模式:在导入一张excel表前,工具将先删除跟excel同名的表(如果存在),再创建数据库表并导入数据。
追加模式:工具将直接将数据导入到同名的数据库表(数据库表需要已存在)。该模式下,工具通过excel的表名+列名与数据库里的表名+列名进行匹配,工具将匹配的列数据导入匹配上的表,如果存在未匹配上的列,这些列的数据将被忽略。
合并模式:通过excel数据与数据库表的主键对比,进行存在先删除,再插入的操作。
高级:
CSV文件编码:
默认为AUTO,表示工具自动探测,如果能确定所有CSV文件编码,
你可以指定(可选择和输入)以提高效率
将这些值替换为null:
对于常见的excel错误单元格或者某特定的值,填入以逗号分隔,将被替换为null
为创建的表名添加前缀:
可以为工具创建的表名指定前缀,以示区分
将所有数据追加到表:
将导入的数据都追加到指定的某个已存在的表(仅追加模式有效)
指定列名所在行数:
指定将第几行作为列名,第一行从1开始,默认为1
数据开始行:
数据开始行数,默认为2
删除空行:
如选择,工具将删除所有空行
去除字符前后空格:
若选择,工具将去除字符前后空格
跳过空表:
若选择,如果表格没有数据,工具将不会创建数据库表
添加一列值为表名
若选择,工具将添加一列,其值为表名
遍历子目录
若选择,工具将遍历所选目录及其子目录下所有excel文件
转换表名和列名中文为拼音首字母
若选择,工具将表名和列名中的中文转换为拼音首字母
导入前后运行SQL
允许导入前后运行自定义SQL
保存当前配置
保存当前配置
导入配置
导入已保存的配置
关于工具如何工作:
下面描述了一些工具工作时的逻辑
如何确定表名:
如果excel里只包含一个sheet >> excel文件名
如果excel里包含多个sheet >> excel文件名+_+sheet名
字符例如括号都会被替换成_
如果表名长度超过了数据库限制 >> 截断
如何确定列名:
默认使用第一行作为列名,如果列名全为空,将用下一个非空行作为列名
如果存在列名为空,将用unnamed+计数作为列名
字符例如括号都会被替换成_
如果列名重复,使用列名+计数作为列名
如何确定列类型:
工具将计算每列最大长度,如果小于255,将使用varchar(255),
如果大于255,将使用text或者clob。
纠正错误
mysql错误1366:
如果excel文件包含表情等utf8mb4编码的字符,
在utf8编码的表中,如果sql_mode为STRICT_TRANS_TABLES,
会报1366错误。工具将暂时设置sql_mode='',导入后会设回默认值
mysql错误1118:
对于一行数据的总长度,mysql限制为65535,
如果超长,将报1118错误。工具将全部列类型替换为text
定时调度
工具可以直接在命令行模式下后台运行(没有图形化界面),因此,可以在windows或者linux对其配置定时任务,实现定时运行。
只需要添加一个配置文件(config.ini)作为其参数即可,工具通过读取该配置文件里面的配置自动运行。
- Windows: ExcelToDatabase.exe D:/config.ini
- Linux: ./ExcelToDatabase /home/ryjfgjl/config.ini
获取帮助
- 技术支持QQ群:788719152
- Email:2577154121@qq.com
开源工具,欢迎关注点赞收藏评论!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/288724.html