首页 > 数据库 >定时导入excel到数据库

定时导入excel到数据库

时间:2023-11-01 18:06:38浏览次数:28  
标签:数据库 excel 更新 员工 任务 导入 定时

定时导入excel到数据库

前面我们介绍了一键导入excel到数据库的方法,省去了excel导入数据库的繁杂步骤,解决了中间可能遇到的各种问题。也介绍了多个excel文件批量导入到数据库的方法,实现了无人值守的批量导入。 现在我们介绍如何实现定时导入,实现全自动化。

示例

如图,假设我们有一张表格叫员工信息.xlsx,里面记录了公司所有的员工信息,当有新员工加入时会在表里新增数据,当有员工信息变动时,也可能会更新表数据。

现在,我们要把这个表的数据同步至数据库,并且当excel数据更新时,能够定时更新数据库里面的数据。

定时导入excel到数据库_定时任务

第一步:在数据库中建立员工信息表

这里我们以mysql数据库为例,先在数据库中建立一张员工信息表用于存放即将导入的excel数据。 使用ExcelToDatabase工具一键导入excel到数据库。

定时导入excel到数据库_数据库_02

定时导入excel到数据库_数据_03

第二步:决定更新方式 数据的更新方式一般有两种:全量更新与增量更新 1.全量更新:即删除数据库表中之前导入的全部数据,再将excel表的全部数据导入进去。这种方式简单粗暴,保证了excel和数据库数据的一致性。但是当excel数据量较大或者更新较为频繁时,会消耗更多的资源和时间。一般适用于数据量较小或者更新不频繁或者不需要保留历史数据的场景。 2.增量更新:即在数据库表已有数据的基础上,只更新excel新增或者修改的数据。这种方式需要每行数据都有一个固定唯一标识,用于区分数据,比如这里的员工id。 下面我们分别介绍两种更新方式。全量更新

我们先将刚刚的导入配置另存为叫员工信息,并在MySQL选项勾选表若存在先清空,点击保存。

定时导入excel到数据库_数据_04

在工具菜单栏-定时任务-新增,新增一个定时任务叫员工信息-全量更新(这里定时任务的设置我们先保持默认,后面再做补充)

定时导入excel到数据库_数据_05

编辑excel,分别删除,新增,修改一条数据测试效果,下图是修改前数据库表中数据的样子,我们将删除最后一条姓名为林子程记录,将倒数第二天张智春的工资改为10000,再新增一条记录

定时导入excel到数据库_数据_06

修改后如图所示,并保存excel

定时导入excel到数据库_数据_07

再次查看数据库表数据,已更新

定时导入excel到数据库_定时任务_08

增量更新

如果正在进行全量更新,先将其停止。

定时导入excel到数据库_数据_09

这里,我们选用员工id作为数据的唯一标识,并在数据库表里面将其设置为主键。

定时导入excel到数据库_数据库_10

MySQL选项界面取消勾选表若存在先清空,并勾选当Excel与表数据重复时-更新,保存配置

定时导入excel到数据库_定时任务_11

新增一个定时任务叫员工信息-增量更新

定时导入excel到数据库_定时任务_12

然后修改一条数据测试,这里我们修改员工id为1004的工资,修改前为12000 删除员工id为1005的数据,并新增一条员工id为1006的数据 数据库表修改前如图:

定时导入excel到数据库_数据库_13

excel修改保存excel如图

定时导入excel到数据库_定时任务_14

再次查看数据库表,已更新

定时导入excel到数据库_数据库_15

可以看到,员工id1004的工资已改为60000,员工id1005依然在数据库中保留了下来,并新增了员工id1006

定时任务设置

定时导入excel到数据库_定时任务_16

可以在工具菜单栏-定时任务新增/编辑/删除定时任务。选择配置:选择一个保存的配置 开始/结束时间:填写定时任务的有效期间 月份:可填1-12 星期:可填1-7即星期一到星期日 天:可填1-31 小时:可填0-23 分钟:可填0-59 秒钟:可填0-59 输入定时任务名称:默认使用配置名称,可修改 禁用:如果要禁用定时任务请勾选

以小时为例:填13表示13点,填13,16表示13点和16点,填13-16表示13到16点,填 * 表示每个小时即0-23,填 */2表示每隔1小时

常见定时任务示例如图:

定时导入excel到数据库_数据_17

可以在定时任务界面查看实时定时任务的基本信息:

定时导入excel到数据库_定时任务_18

注意:如果有正在运行的定时任务,点击x关闭界面时,程序会隐藏到托盘区而不是直接退出程序。如果再点击退出程序,程序会直接退出程序,并停止执行定时任务,重新启动程序又会重新启动定时任务。

定时导入excel到数据库_数据_19

如何将ExcelToDatabase加入开机启动

需要运行定时任务的应用程序一般放置于24小时不间断运行的服务器上,但是如果是自己电脑上运行的定时任务,可能每天都会重启电脑。这时我们可以将程序加入开机启动,启动程序后才会自动运行定时任务。第一步:创建exe快捷方式

定时导入excel到数据库_数据库_20

第二步:将快捷方式放入windows的启动文件夹下,该文件下的程序会随着电脑开机启动我的电脑路径为:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

定时导入excel到数据库_数据库_21

其他定时方式

使用ExcelToDatabase内置的定时任务需要保持程序开启,退出程序后会自动停止定时任务的运行。如果想不开启程序让定时任务在后台运行,则可以让其他专门的定时任务程序调用ExcelToDatabase提供的API。比如Windows自带的任务计划程序等,这种方式提供了无图形化界面的后台运行方式,并能随电脑开机自动启动。

定时导入excel到数据库_定时任务_22

API使用方法可以参照下方介绍

ExcelToDatabase介绍及下载

介绍

  • ExcelToDatabase-批量导入Excel文件到MySQL/Oracle/SQL Server/PostgreSQL/Access/Hive/SQLite/达梦数据库的自动化工具

下载

标签:数据库,excel,更新,员工,任务,导入,定时
From: https://blog.51cto.com/u_12634008/8130350

相关文章

  • 实时同步刷新excel数据到数据库
    实时同步刷新excel数据到数据库前面,我们已经讲了定时导入excel到数据库,我们只需要稍作修改就可以实现实时刷新。新增定时任务,定时设置全部填*,即代表实时运行可以在定时任务界面看到任务在不停的运行,当excel数据更新了,点击保存后,马上就可以在数据库看到更新的数据了因为实时运行刷......
  • 合并多个excel文件数据
    合并多个excel文件数据工作中,经常我们会得到一些excel表格,存放着格式相同的一些数据。如果我们想要对这些数据进行数据分析,因为数据分布在多个excel文件或者多个sheet,分析起来比较困难,此时我们就需要将它们合并到一个excel文件或者合并到数据库来进行分析处理。示例如图,我们需要将1......
  • django搭建平台实战教程一:生成数据库数据
    首先需要创建一个django-rest-framework项目,如何创建可以参考https://www.django-rest-framework.org/tutorial/quickstart/,不再赘述。创建完结构如图所示 settings.py配置mysql数据库...DATABASES={"default":{"ENGINE":"django.db.backends.mysql",......
  • 如何在excel中查找问号“?”星号“*”和“~”号
    Excel查找替换时如何使用通配符的问号? 若需要查找问号“?”,则在查找内容文本框中输入“~?”若需要查找星号“*”,则在查找内容文本框中输入“~*”。若需要查找问号“~”,则在查找内容文本框中输入“~~”。......
  • 基础课-数据库3
    6.查询数据语句公式:SELECT列名      FROM  表名一、SELECT列名(多列的话用逗号分隔),*代表查询所有列 1)查询单列数据时使用distinct关键字可以去掉重复数据,加到列名前例如:SELECTDISTINCTjobFROMemp;2)查询数字型列时,可以根据查询需要对数据进行四则运算(加......
  • linux安装MySQL数据库初始化报错
    在使用如下初始化命令进行数据库初始化时报错,./bin/mysqld--user=mysql--basedir=/usr/local/mysql/mysql/--datadir=/usr/local/mysql/mysql/data/--initialize--lower-case-table-names=1; 权限不足导致,修改命令为:./bin/mysqld--user=root--basedir=/usr/local......
  • python 模块导入赋值给变量
    一、假设有一个dangerous_code.py文件。二、导入模块赋值给变量dangerous_module=__import__('dangerous_code')三、执行模块中的delete_all函数(方法)删除内容danderous_module.delete_all()免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果......
  • Oracle数据库常用命令
    数据库初始化命令表空间相关建立表空间--建立临时表空间CREATETEMPORARYTABLESPACEtemp_name--创建名为temp_name的临时表空间TEMPFILE'D:\app\super\oradata\oracle\temp_name.DBF'--临时文件SIZE50M--其初始大小为50MAUTOEXTENDON--支持自动扩展NEXT......
  • 2.第一个MyBatis程序 搭建环境->导入MyBatis->编写代码->测试
    2.1搭建环境搭建数据库-创建表CREATETABLE`user`(`id`int(20)NOTNULL,`name`varchar(30)DEFAULTNULL,`pwd`varchar(30)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;​​INSERTinto`user`(id,name,pwd)VALUES(1,'张......
  • Java导入Jsoup库做一个有趣的爬虫项目
    Jsoup库是一款Java的HTML解析器,可用于从网络或本地文件中获取HTML文档并解析其中的数据。它可以模拟浏览器的行为,获取网页中的数据,是Java爬虫中常用的工具之一。与浏览器相比,Jsoup库的主要区别在于它不会执行JavaScript代码,因此无法获取通过JavaScript生成的内容。使用Jsoup库进行......