本帖最后由 毛毛 于 2024-3-5 09:02 编辑
某客户每周需要将Excel中的数据导入到MSSQL中,Excel中只有1个sheet,其中有大约5万条数据,每行数据7个字段。
使用官方的"导入Excel数据到表格"插件效率太低,web页面会卡死,只能另寻他路了,下面说一下解决步骤。
会用到以下两个插件
1、在数据库中创建一个文件上传的表,字段1为ID主键自增,字段2为文件名。至于为什么要建这个表,主要是为了取到上传文件的完整路径供后续使用。
2、在表格中选中一片单元格区域设置为FilePreviewer类型,绑定上一步建立数据表中的文件名字段,限制上传文件扩展名为xlsx和xls,最大个数为1
3、创建服务端命令,设置两个变量,目录为服务端设置的存储路径+应用名称。比如我服务端设置的终端用户上传文件的根目录为D:\Forguncy\upload,应用名为test,那么我就将目录这个变量设置为D:\Forguncy\upload\test\
文件名的变量我们就要从数据库中取了,按照ID降序排列,保证取到的就是最近上传的文件名(该业务场景只有一个用户上传,不存在多用户同时上传的情况)
4、配置插件信息
5、前端导入按钮配置命令,先将上传文件的文件名写入数据库表(一定要写入表,否则文件只会保存在存储路径下的temp目录中,可能会被系统清空)再调用服务端命令将Excel中的数据写入数据库
使用:
先点上传按钮,选中需要上传的Excel文件,再点导入按钮,数据就能被写入数据库中。
测试结果:
实测导入5万条数据耗时3秒。
注意:必须将应用发布至服务器,本地调试会提示找不到文件。
总结:
总体来说配置还是稍显麻烦,并且只支持MSSQL数据库,希望官方后续能优化Excel数据导入数据库的功能,能够简单易用,兼容多种数据库同时还拥有良好的性能。这个需求对于活字格开发团队来说应该是小菜一碟吧
|