当前位置:Gxlcms > mysql > 利用kettle组件导入excel文件到数据库

利用kettle组件导入excel文件到数据库

时间:2021-07-01 10:21:17 帮助过:72人阅读

利用kettle组件导入excel文件到数据库 1. 实现目标 把excel文件内容导入到目标表中;然后用java调用kettle的转换。excel文件的内容只有两列,示例如下: 数据库表的结构如下: vcD4KCjxoMz4yLiAgICAgyei8xrfWzvY8L2gzPgoKPHVsPgo8bGk+CjxwPgrKudPDb3JhY2xluq/

利用kettle组件导入excel文件到数据库

1. 实现目标

把excel文件内容导入到目标表中;然后用java调用kettle的转换。excel文件的内容只有两列,示例如下:

\

数据库表的结构如下:

\

<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KCjxoMz4yLiAgICAgyei8xrfWzvY8L2gzPgoKPHVsPgo8bGk+CjxwPgrKudPDb3JhY2xluq/K/b3ivvbJz828u8bJq9DQtcTX1rbOo7rBvbj2dXVpZLrNwb249s+1zbPI1cbao7s8L3A+CgoKPHA+0OjSqsn6s8l1dWlko6zV4rj21NpvcmFjbGXW0L/J0tTA+9PDU1lTX1VVSUQoKbqvyv3Ktc/Wo7s8L3A+Cgo8cCBhbGlnbj0="left">需要生成当前时间作为创建时间和修改时间,使用oracle的to_char(sysdate,’yyyy-MM-dd hh:mm:ss’)实现;

  • 使用命名参数解决蓝色行字段

    创建人及修改人的ID(两者一致)、组织ID、来源文件的ID;分别使用命名参数:

    ${USER_ID}、${ORG_ID}、${FILE_ID}、${FILE_NAME};

    其中文件名称是读取excel步骤要使用的;

    • 使用excel行内容作为绿色行的值

      即企业名称和组织机构代码两个字段;

      • 使用默认值作为白色行的值

        3. 设计kettle的转换文件

        使用excel输入步骤读取excel内容,使用执行sql脚步步骤把记录插入数据表中;

        3.1. 设计步骤

        从输入类别中拖动excel input步骤到工作区,从脚步类别中拖动执行sql 脚步到工作区;按shift键,从excel input步骤连接到sql脚步步骤。如下图:

        \

        3.2. 配置步骤

        • 配置excel步骤

          双击excel步骤,打开配置对话框:

          \

          \

          \

          • 配置数据库连接

            记得把oracle的jdbc驱动加到kettle的lib目录中,可以测试连接。

            \

            • 配置执行sql脚步步骤

              双击该步骤打开配置,首先选择前面配置的数据库连接,然后写insert语句。需要注意的是字符类型要用引号括起来,即使是变量或?都需要括起来。

              问号的内容需要在parameters中配置对应的流字段;

              因为需要执行多行,需要选中Execute for each row 选项;

              因为有变量,需要选中Variable substutution选项;

              \

              3.3. 配置参数

              前面分析了需要四个参数,分别在两个步骤使用到了,所以需要给转换配置四个命名参数: USER_ID、ORG_ID、FILE_ID、FILE_NAME;

              双击工作区空白部分打开转换配置,输入相应的参数,也可以添加默认值,用于在kettle中进行测试使用,直到测试没有错误。

              \

              至此,在kettle的设计工作已经做完,大家可以参考这篇博客文章,关于动态查询的详细说明,地址:http://blog.csdn.net/neweastsun/article/details/39287809;

              4. 在java调用转换

              调用之前,需要准备上述四个参数的内容,然后把参数传给转换执行;详细内容参考这篇博客文章:

              http://blog.csdn.net/neweastsun/article/details/40886841

人气教程排行